Javascript.RU

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

Скрипт: поиск по странице сайта. Не работает...
Попался скрипт поиска по странице сайта. Наверное древний, но в IE8 работает (поиск по слову, части слова, min 2-м буквам), а вот в Opere и Firefox нет. Доработайте, пожалуйста...

<form name="search" onSubmit="return findInPage(this.string.value);">
<font size=3><input name="string" type="text" size=15 onChange="n = 0;"></font>
<input type="submit" value="Поиск">
</form>

<script language="JavaScript">

var NS4 = (document.layers);
var IE4 = (document.all);

var win = window;
var n = 0;

function findInPage(str) {

var txt, i, found;

if (str == "")
return false;

if (NS4) {

if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;

if (n == 0)
alert("Not found.");
}

if (IE4) {
txt = win.document.body.createTextRange();

for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}

if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}

else {
if (n > 0) {
n = 0;
findInPage(str);
}

else
alert("Not found.");
}
}

return false;
}

</script>
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2010, 15:53
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

даже не знаю с чего начать.
пойду по порядку:
1)
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
2)
Сообщение от ivIvan
Наверное древний
невероятно.
настолько, что никто в здравом уме его дорабатывать не станет.
проще и правильней с нуля написать
3)
Сообщение от ivIvan
Доработайте, пожалуйста...
Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2010, 16:18
Новичок на форуме
Отправить личное сообщение для ivIvan Посмотреть профиль Найти все сообщения от ivIvan
 
Регистрация: 03.06.2010
Сообщений: 7

Сообщение от Gvozd
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
С этим все нормально...

Дело в том, что скрипт в IE8 работает, а нашел я его в свободном доступе... Просто из других скриптов с такой же функцией (поиск по текущей странице) попадалась одна хрень...

Вопросы "по ходу дела" задавать не могу, т.к. в теме "0".
Спасибо за установление срока "древности"...
Ответить с цитированием
  #4 (permalink)  
Старый 03.06.2010, 16:21
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от ivIvan
С этим все нормально...
вообще-то нет.
вы все еще не привели свое первое сообщение в читаемый вид.
Сообщение от ivIvan
Вопросы "по ходу дела" задавать не могу, т.к. в теме "0".
раз вы "0" в теме, и не собираетесь прикладывать усилия, то вам в раздел "Работа"
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2010, 16:33
Новичок на форуме
Отправить личное сообщение для ivIvan Посмотреть профиль Найти все сообщения от ivIvan
 
Регистрация: 03.06.2010
Сообщений: 7

Прикладываю усилия:

Сообщение от ivIvan
<form name="search" onSubmit="return findInPage(this.string.value);">
<font size=3><input name="string" type="text" size=15 onChange="n = 0;"></font>
<input type="submit" value="Поиск">
</form>
Находится в <body>...</body>, позиционирование: левый нижний угол браузера (fixed).

<script language="JavaScript">...</script> в HEAD.
Ответить с цитированием
  #6 (permalink)  
Старый 03.06.2010, 16:46
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от ivIvan
Прикладываю усилия:
это вы не прикладываете усилия по модификации скрипта.
Это вы его просто используете.
Тут особо негде напрячься
Ответить с цитированием
  #7 (permalink)  
Старый 03.06.2010, 16:52
Новичок на форуме
Отправить личное сообщение для ivIvan Посмотреть профиль Найти все сообщения от ivIvan
 
Регистрация: 03.06.2010
Сообщений: 7

Сообщение от ivIvan
<script language="JavaScript">

var NS4 = (document.layers);
var IE4 = (document.all);
Я так понимаю, этот кусок имеет отношение к IE и FF, только указаны старые версии?
Ответить с цитированием
  #8 (permalink)  
Старый 03.06.2010, 17:09
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от ivIvan
Я так понимаю, этот кусок имеет отношение к IE и FF, только указаны старые версии?
к IE и Netscape Navigator
ныне мертв.
а цифры в именах переменных ничего не означают, в плане проверки
и не в этих строчках основная проблема
Ответить с цитированием
  #9 (permalink)  
Старый 03.06.2010, 17:23
Новичок на форуме
Отправить личное сообщение для ivIvan Посмотреть профиль Найти все сообщения от ivIvan
 
Регистрация: 03.06.2010
Сообщений: 7

Все, вопросы кончились.
Буду искать другой скрипт для Opera и FF
Ответить с цитированием
  #10 (permalink)  
Старый 03.06.2010, 17:26
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Хм… а никто не знает, с каких версий появилась глобальные функция find в Chrome и Safari?
В Fx она давно. Сейчас подводит только Opera, в 10-й версии все еще нет window.find и уже нет document.selection.createRange().findText…

ivIvan,
поиск текста в браузерах, не поддерживающих TextRange, очень затруднен, приходится работать с текстовыми узлами, а слова могут быть разбиты на несколько узлов, и пробельные символы браузер не все отображает, из-за чего алгоритм становится очень сложным, это не 2 строчки кода подсказать, написание такого скрипта — это уже работа.


-----------
В Safari 3.2 есть функция find, для большинства проектов ниже этой версии нет смысла делать поддержку, на старые версии Chrome в принципе никто и не ориентируется. Значит в аутсайдерах новая Opera…

Последний раз редактировалось Octane, 03.06.2010 в 17:34.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает в FF и опера, но работает в IE(в чем дело???) Cepera Firefox/Mozilla 1 24.08.2012 16:46
Java скрипт не работает в Opera Eagle28 Ваши сайты и скрипты 3 07.04.2010 19:36
Почему не работает скрипт, подскажите aviaks Ваши сайты и скрипты 2 05.05.2009 14:38
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 15:50
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32