Пошук по сторінці. може знадобитися для сторінок надають великий обсяг даних, включаючи таблиці і списки. Зауважу, що така потреба виникає в тому випадку, коли контент сторінки є статичним, і не генерується з бази даних.
Шукати на сторінці потрібну інформацію буде зручніше, якщо для цього реалізувати відповідний інтерфейс:
В поле потрібно ввести слово для пошуку і натиснути кнопку «Шукати», тут все інтуїтивно зрозуміло. Давайте перейдемо до реалізації самого механізму пошуку по сторінці і подивимося, які можуть бути нюанси при його реалізації.
Як шукати слово на сторінці?
if (obj) textToFind = TrimStr (obj.value); // обрізаємо прогалини
> Else alert ( "Введена фраза не знайдено");
return;
>
if (textToFind == "") alert ( "Ви нічого не ввели");
return;
>
if (document.body.innerHTML.indexOf (textToFind) == "- 1")
alert ( "Нічого не знайдено, перевірте правильність введення!");
товар | вага | вартість |
---|---|---|
Монітор 19 дюймів | 1 кг | 1900 руб. |
монітор 18 дюймів | 2 кг | 1800 руб. |
Монітор 20 дюймів | 2 кг | 1900 руб. Спробуйте, протестувати пошуковими запитами «19», «2 кг» та іншими. Також раджу перевірити авто скролинг, для цього додайте текст до тих пір поки справа не відобразиться смуга прокрутки. Ось так виглядає приклад використання скрипта: Для Alexey. Необхідна наступна доробка: Вхідні дані початок рядка input (для мене) Маємо «исходник», писати новий. немає часу, лінь, «голова-дим». Що про нього, replace - відомо? А відомо то, що replace може заміняти входження регулярного вираження не тільки на рядок, а й на результат виконання функції. Його повний синтаксис, як приклад - такий: var newString = str.replace (regexp / substr, newSubStr / function) Ну і далі як - regexp Об'єкт RegExp. Його входження будуть замінені на значення, яке поверне параметр номер 2 Substr - Рядок, яка буде замінена на newSubStr. На жаль метод replace не змінює рядок, на якій викликаний, а просто повертає нову, змінену рядок. var ab = "a b" .replace ( "\\ s", "..") // = "a b" Виклик replace залишив рядок без зміни, т.к шукати не регулярний вираз \ s. а рядок «\ s«. Отже, використовував код, допрацював що б не глючить при введенні 1-2 символів або цифр, допрацював, що б надійно переходив до першого знайденого входження тексту. Але тепер з'ясувалося, що пошук і заміна відбувається по всьому тексту сторінки і по атрибутам HTML тегів. ...... Якщо вам дійсно потрібна консультація з таких питань - звертайтеся до професіоналів, наприклад, в «» Австрію-Хоум ».. Консультувалися ...... при пошуку по слову austria пошкоджується. Як налаштувати пошук і заміну тільки в видимому тексті, І ще, а як знайти наступний примірник? //////////////////////////////////////// search > Else searchGlobalText (ob.childNodes [i], textToFind); if (document.createRange) var rng = document.createRange (); rng.surroundContents (highlightDiv); var rng = document.body.createTextRange (); rng.moveToElementText (root); rng.pasteHTML ( ''+ TextToFind +'');
var textToFind = document.getElementById (inputId) .value; Добрий день, спасибі за код. Добрий всім день! Підкажіть будь ласка, чому у мене по даному коду шукає тільки 1 слово, тобто якщо вводиш фразу, навіть з 2-х слів, пошук не відбувається. І ще, як перетворити цей код, щоб все пропозиції з знайденим текстом з'являвся в окремому вікні? Допоможіть будь ласка, а то текст дуже величезний, навіть прокрутка не допомагає. Схожі статті |