Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2009, 13:26
Новичок на форуме
Отправить личное сообщение для derwish Посмотреть профиль Найти все сообщения от derwish
 
Регистрация: 24.09.2009
Сообщений: 3

Поиск текста на странице
В 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. Только пожалуйста можно без слов об "устаревших скриптах найденных на помойках".
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2009, 14:00
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Скрипт написа только для IE.
http://fastcoder.org/articles/?aid=609
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2009, 14:30
Новичок на форуме
Отправить личное сообщение для derwish Посмотреть профиль Найти все сообщения от derwish
 
Регистрация: 24.09.2009
Сообщений: 3

Статью почитал.
То есть получается, что из-за несовместимости стандартов нереально писать JS одинаково работающие в любом браузере?
Либо нужно определять тип браузера и использовать соответствующий вариант языка, что на мой взгляд через чур громоздко.
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2009, 14:37
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да, в этом случае код будет совершенно разный для IE и других W3C-совместимых браузеров. Причем, для IE намноооооого проще
Ответить с цитированием
  #5 (permalink)  
Старый 25.09.2009, 12:36
Новичок на форуме
Отправить личное сообщение для derwish Посмотреть профиль Найти все сообщения от derwish
 
Регистрация: 24.09.2009
Сообщений: 3

Понял. А может кто-нибудь подсказать, как надо изменить код, чтобы он заработал в Опере?
Ответить с цитированием
  #6 (permalink)  
Старый 25.09.2009, 13:13
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

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


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск на странице no_name jQuery 4 07.09.2010 13:26
Вставка текста с одной страницы в форму на другой странице Dima Общие вопросы Javascript 19 22.01.2009 17:35
Скрытие текста на странице за ссылкой Vlad44 Общие вопросы Javascript 2 13.01.2009 18:02
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02
Поиск текста и замена krestiyaninov Общие вопросы Javascript 1 07.05.2008 13:30