Поиск текста на странице
В JS я пока полный ноль - как и многие ищу готовые скрипты и немного исправляя под свои нужды пытаюсь разбираться как они работают.
Поставил на свою страничку довольно распространенный скрипт:
<script language="Javascript" type="text/javascript">
function searchword(word)
{
var r=I1.document.selection.createRange().text;
if (word) {
r=I1.document.body.createTextRange();
i=0;
while(r.findText(word))
{i++;
r.execCommand('BackColor','','#F0E68C');
r.collapse(false);
r.scrollIntoView();
cont=confirm('Продолжить?');
if (!cont) break
else i=0}
if (i==0) alert('Искомое слово не найдено')
}
}
</script>
В IE все работает как положено. В Опере (ну и в FF тоже) никакой реакции. Включил в Опере отображение консоли ошибок - при вызове этой функции выдается сообщение: Event tread: click Error: name: TypeError message: Statement on line 6: Type mismatch Ругается как бы на неверный тип переменной, это его i не устраивает? Кто-нибудь может объяснить почему работает в IE и не работает в Опере и FF? P.S. Только пожалуйста можно без слов об "устаревших скриптах найденных на помойках". |
Скрипт написа только для IE.
http://fastcoder.org/articles/?aid=609 |
Статью почитал.
То есть получается, что из-за несовместимости стандартов нереально писать JS одинаково работающие в любом браузере? Либо нужно определять тип браузера и использовать соответствующий вариант языка, что на мой взгляд через чур громоздко. |
Да, в этом случае код будет совершенно разный для IE и других W3C-совместимых браузеров. Причем, для IE намноооооого проще :)
|
Понял. А может кто-нибудь подсказать, как надо изменить код, чтобы он заработал в Опере?
|
Никак, в Опере поиск по странице работать не будет, так как это говнобраузер...
|
| Часовой пояс GMT +3, время: 06:40. |