Поиск текста на странице
В 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, время: 04:18. |