Указать отметку. js сообщать об одной отметке, а не о трех - PullRequest
0 голосов
/ 02 августа 2020

Я использую mark. js (https://markjs.io) для выделения ключевых слов на веб-страницах. У скрипта есть опция, в которой вы указываете ему выделять ключевые слова, которые охватывают разные элементы (опция «через элементы»). Существует также функция "готово", с помощью которой вы получаете количество ключевых слов, отмеченных скриптом.

Допустим, я хотел бы выделить ключевое слово 'word1 word2 word3' .

Если для параметра 'throughElements' установлено значение 'true', сценарий действительно выделит ключевое слово, но будет выдавать три отметки вместо одной. Вы можете выполнить приведенный ниже код, чтобы проверить это.

Если я установлю для параметра «throughElements» значение «false» и уберу теги «» вокруг второго слова, тогда сценарий выделит ключевое слово и сообщить об одной маркировке.

У меня такой вопрос: можно ли указать mark. js сообщать об одиночной маркировке, даже если ключевое слово охватывает несколько элементов (опция 'через элементы' установлено значение 'true')?

Я вижу 'word1 word2 word3' как одно ключевое слово, состоящее из трех слов. Поэтому, естественно, когда совпадение найдено и выделено, я считаю, что лучше считать его как одно, а не три.

Спасибо,

Алекс

var instance = new Mark(document.querySelector("body"));
instance.markRegExp (/word1 word2 word3/i, {
  acrossElements: true,
  done: function (m) { alert("Number of markings: " + m) }
});
<html>
  <head>
    <script src="https://cdn.jsdelivr.net/mark.js/8.8.3/mark.min.js"></script>
  </head>
  <body>
    <div>content word1 <b>word2</b> word3 content</div>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...