Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Поиск текста на странице (https://javascript.ru/forum/css-html-browser/5190-poisk-teksta-na-stranice.html)

derwish 24.09.2009 13:26

Поиск текста на странице
 
В 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. Только пожалуйста можно без слов об "устаревших скриптах найденных на помойках".

Octane 24.09.2009 14:00

Скрипт написа только для IE.
http://fastcoder.org/articles/?aid=609

derwish 24.09.2009 14:30

Статью почитал.
То есть получается, что из-за несовместимости стандартов нереально писать JS одинаково работающие в любом браузере?
Либо нужно определять тип браузера и использовать соответствующий вариант языка, что на мой взгляд через чур громоздко.

Octane 24.09.2009 14:37

Да, в этом случае код будет совершенно разный для IE и других W3C-совместимых браузеров. Причем, для IE намноооооого проще :)

derwish 25.09.2009 12:36

Понял. А может кто-нибудь подсказать, как надо изменить код, чтобы он заработал в Опере?

ZoNT 25.09.2009 13:13

Никак, в Опере поиск по странице работать не будет, так как это говнобраузер...


Часовой пояс GMT +3, время: 11:26.