Javascript.RU

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

Поиск как в браузере.
Подскажите, что использовать и примерный ход действий.

Задача хочу повторить поиск такой же как в браузерах при нажатии ctrl F
То есть будет строка поиска на сайте (не нужно ни каких горячих клавиш) которая будет искать полностью на всей страницы текс, Начинаю поиск с первых трех символов совпадение, что бы ему было пофиг на регистр и там же подсвечивал найденные совпадение и были клавиши вверх вниз для перемещение к найденным совпадением, ну и показывал какое количество совпадений нашел виде количества числа То есть полностью как в любом браузере.

Я думаю что это возможно просто нужна подсказка что и как использовать.

Не прошу скрипта, хочу сам сделать. Просто накидайте как это сделать. Я попробую.
Ответить с цитированием
  #2 (permalink)  
Старый 11.03.2023, 09:44
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Простой способ: использовать window.find, что по сути является интерфейсом к тому же поиску браузера.
Сложный способ, если предыдущий не подходит - сложный, на неделю разработки и месяц отлова багов минимум, тут лучше какую-нибудь готовую либу использовать.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 11.03.2023, 09:49
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Aetae,
То есть это не так просто как мне кажется и мне как новичку нужно выбрать задачу по проще?
Ответить с цитированием
  #4 (permalink)  
Старый 11.03.2023, 11:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Сергей Ракипов
Не прошу скрипта,
давно это было ...)))
поиск и подсветка слов в тексте
Ответить с цитированием
  #5 (permalink)  
Старый 11.03.2023, 11:38
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Сообщение от Сергей Ракипов
Просто накидайте как это сделать.
С помощью NodeIterator (https://developer.mozilla.org/en-US/...I/NodeIterator) перебираем все текстовые узлы. В каждом узле ищем заданную строку. Если нашли делим этот узел, что бы выделить найденную часть текста с помощью методов интерфейса CharacterData (https://developer.mozilla.org/en-US/.../CharacterData)
Далее оборачиваем каждую найденную подстроку в span для ее подсветки Сохраняем массив этих элементов. Отмечаем текущий элемент классом. При перемещении по найденным просто переставляем класс текущего на нужный элемент.
Ну и сделать обратную операцию снятия подсветки. Вытащить из этих спанов текст, а сам span удалить.
Не так и сложно. Просто плотная работа с DOM.
Ответить с цитированием
  #6 (permalink)  
Старый 11.03.2023, 12:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

А вообще все сложнее. Там надо исключать невидимые текстовые узлы. У которых у родителей display: none, продумать, что делать с теми, у которых visibility:hidden, и которые скрыты из-за того, что у родителя overflow:hidden.
Ответить с цитированием
  #7 (permalink)  
Старый 12.03.2023, 01:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

voraa, ...а также учитывать что искомое слово\фраза может быть разделена на несколько нод...
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать простейший поиск на JS @Loll Общие вопросы Javascript 1 26.08.2016 09:57
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как открыть окно в браузере со сгенерированным через JavaScript HTML-кодом? xintrea Events/DOM/Window 1 13.07.2013 02:03
jquery поиск как на lastfm.ru tenterro jQuery 1 26.02.2010 19:11
Как заранее закэшировать картинки в браузере IE 6 ilshat Internet Explorer 8 30.01.2009 15:26