Выберите диапазон с библиотекой Rangy по номеру слова - PullRequest
0 голосов
/ 27 августа 2018

Я тестирую библиотеку Rangy как способ выделения текста. Кажется, легко выделить и выделить текст. Но я сталкиваюсь со следующим делом:

Скажем, есть текст (страница HTLM) и заданный диапазон слов (например, от 10 до 23). Есть ли способ создать этот диапазон слов с числами в Rangy, чтобы выделить его?

Спасибо.

Обновление

Вот пример содержимого HTML:

<div id = "content">
   <h3>World human population</h3>
   <div class="aright w300 shadow">
     <a href="img308.jpg" " title='Population growth.'" >
       <img id_image="308" src="img308.jpg" /></a>
       <div class="iphoto">Population growth.</div>
   </div>
   <p>The world's population is estimated to be 7.646 billion.</p>

   <h3>The development of agriculture and manufacturing</h3>

   <ul class="bullets color">
     <li>
       <p> <strong>Predicted growth.</strong> Population growth increased significantly as the Industrial Revolution gathered pace from 1700 onwards.</p>
     </li>
     <li>
       <p> <strong>Predicted decline.</strong> In the future, the world's population is expected to peak,[17] after which it will decline due to economic reasons, health concerns, land exhaustion and environmental hazards.</p>
     </li>
   </ul>
</div>

Как создать диапазон для выбранного слова между «оценочным» (слово 10) и «ростом» (слово 24)?

1 Ответ

0 голосов
/ 27 августа 2018

Вы захотите использовать метод findText с регулярным выражением для сопоставления правильных слов. Псевдокод для кода Рэнги без регулярного выражения:

var searchResultApplier = rangy.createClassApplier("classToApply");
var range = rangy.createRange();
var searchScopeRange = rangy.createRange();
searchScopeRange.selectNodeContents(document.querySelector('#content');
searchResultApplier.undoToRange(range);

searchTerm = new RegExp('your regex to select the correct range of words');
if (range.findText(searchTerm, options) {
    searchResultApplier.applyToRange(range);  // Apply your class
}

Это взято из демонстрационного кода, поставляемого с библиотекой Rangy, это хороший инструмент для его тестирования.

...