Проектирование фильтра

0

Вопрос не более уместен.

Я просто хотел добавить, что если кто-то столкнется с необходимостью фильтрации HTML, я бы предложил использовать MutationObserver (это был мой окончательный выбор..)

Теги:

2 ответа

2
Лучший ответ

Читайте немного больше о DOM-манипуляциях, это поможет. Да, использование сценариев контента здесь - правильный путь. Вы захотите, чтобы ваш скрипт выполнялся на "document_start", который запускается до того, как Chrome начнет разбор DOM (таким образом, вы получите начальный старт, по существу). Вы могли бы сделать эту фильтрацию несколькими способами;

  • Просто используйте DOM как одну большую строку и удалите нужные слова. Тем не менее, это грязный способ eoing вещей, если что-то важное было названо после вашего слова (например, класс, имя тега или еще что-то), вы бы сломали DOM.
  • Перебирайте текстовые узлы (строки) в DOM, как только DOM будет готов, и замените и отредактируйте эти текстовые узлы.

Там учебники, подробно описывающие такие вещи, которые вы можете легко найти в Интернете, в соответствии с манипуляциями DOM и заменой текстового узла. В этой статье это гораздо более тесно и лучше, чем у меня здесь: Замена текста в DOM... решена?

И вот библиотека JS (от того же парня, который написал эту статью), которая практически выполняет всю тяжелую работу для вас: https://github.com/padolsey/findAndReplaceDOMText

  • 0
    Большое спасибо за ваш ответ, я рад узнать, что контентные скрипты - это путь (я задавался вопросом о внедряемых скриптах \ коде расширения). Я прочитаю прилагаемые уроки и попробую :)
1

То, как я подхожу к этому, - через плагин jQuery/other framework. Я бы предложил вам взглянуть на некоторые плагины с подсветкой, которые доступны практически во всех средах. См. Здесь некоторые примеры выполнения подсветки.

По сути то, что вам нужно сделать, это выбрать heading теги p - теги и spans и перебираем каждый заменяющих плохих слов.

  • 0
    Это не охватило бы все случаи, так как текст может быть в нетипичных элементах. И jQuery также будет медленнее в этом случае, чем использование нативного JavaScript, поскольку все должно быть сделано быстро, прежде чем пользователь увидит страницу.
  • 0
    Я главным образом указывал ему на jQuery, потому что подобные плагины уже есть и довольно легко понять

Ещё вопросы

Сообщество Overcoder
Наверх
Меню