Реализация поиска только внутри модального окна?

Ссылка скопирована
1 ответ

Всем привет, есть модальное окно, в нем у меня отформатированный JSON для чтения (react-jsow-view)
Я хочу выполнить поиск конкретно только в модальном окне (CTRL + F).
Сейчас поиск происходит по всему DOM и выделяются элементы вне модального окна.
Есть какие-то варианты решения данной проблемы? Знаю что можно впихнуть кастомный поиск и отменить эвент ctrl + f.

Дополнительно:

Ответы:

Есть какие-то варианты решения данной проблемы? Знаю что можно впихнуть кастомный поиск и отменить эвент ctrl + f.

Нативного - не встречал, только перехват и прослушка комбинации ctrl + f.

  • Пока даже плохо представляю реализацию, ctrl + f как-то ищет несмотря на разметку, я так понимаю что-то парсит и склеивает у себя там под капотом.
    При учете своей разметки нужно танцевать с бубном что ли?)

    Реализация поиска только внутри модального окна?

  • Andrey Vasilev, с подсветкой возможно поможет CSS Custom Highlight API
  • Andrey Vasilev,

    Пока даже плохо представляю реализацию

    1. Отменяем стандартное действие поиска.
    2. Вешаем слушателя на нужные клавиши.
    3. Если выполнен п2 и открыто_нужное_модальное_окно > выполняем п4.
    4. Скролим окно в нужной части json, если такое найдено.

  • Михаил Р., это я прекрасно понимаю, но загвоздка в том что мы убираем дефолтный поиск и искать придется своими собственными силами. Хотелось бы узнать о фичах которые помогли и не затягивали процесс разработки изобретением велосипеда. Выше комент от Ивана неплохой, уже не придется дергаться с поиском по сути и можно просто встроить инпут и при вводе символов будет подсветка. Остался только скролл по сути к нужному месту. При условии что я правильно понял работу CSS Custom Highlight API
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Для реализации поиска только внутри модального окна можно использовать следующий подход:

1. Сначала создайте модальное окно на вашей странице, например, с помощью HTML и CSS. Убедитесь, что у модального окна есть уникальный идентификатор, который вы будете использовать для обращения к нему.

2. Далее напишите скрипт на JavaScript, который будет открывать модальное окно при нажатии на определенную кнопку или ссылку. В этом скрипте также можно добавить функционал для закрытия модального окна.

3. Теперь необходимо добавить функционал поиска внутри модального окна. Для этого можно использовать JavaScript, который будет осуществлять поиск по контенту модального окна и скрывать элементы, не соответствующие введенному запросу.

Пример кода для реализации поиска внутри модального окна на языке JavaScript:

// Функция для поиска в модальном окне
function searchInModal() {
    var input, filter, ul, li, a, i, txtValue;
    input = document.getElementById('searchInput');
    filter = input.value.toUpperCase();
    ul = document.getElementById('modalContent');
    li = ul.getElementsByTagName('li');
 
    for (i = 0; i <li> -1) {
            li[i].style.display = '';
        } else {
            li[i].style.display = 'none';
        }
    }
}
 
// Привязка функции к событию ввода текста в поле поиска
document.getElementById('searchInput').addEventListener('input', searchInModal);

// Функция для поиска в модальном окне function searchInModal() { var input, filter, ul, li, a, i, txtValue; input = document.getElementById('searchInput'); filter = input.value.toUpperCase(); ul = document.getElementById('modalContent'); li = ul.getElementsByTagName('li'); for (i = 0; i <li> -1) { li[i].style.display = ''; } else { li[i].style.display = 'none'; } } } // Привязка функции к событию ввода текста в поле поиска document.getElementById('searchInput').addEventListener('input', searchInModal);

В данном примере предполагается, что у вас есть модальное окно с id="modalContent" и полем для ввода запроса с id="searchInput". Функция searchInModal будет скрывать элементы списка в модальном окне, которые не содержат текст, соответствующий запросу пользователя.

Надеюсь, данное объяснение поможет вам реализовать поиск только внутри модального окна на вашем сайте. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно