Поиск…
Синтаксис
- Выбор sel = window.getSelection ();
- Выбор sel = document.getSelection (); // эквивалентно приведенному выше
- Диапазон диапазона = document.createRange ();
- range.setStart (startNode, startOffset);
- range.setEnd (endNode, endOffset);
параметры
параметр | подробности |
---|---|
startOffset | Если узел является узлом Text, это число символов от начала startNode до начала диапазона. В противном случае это число дочерних узлов между началом startNode где начинается диапазон. |
endOffset | Если узел является узлом Text, это число символов от начала startNode до конца диапазона. В противном случае это число дочерних узлов между началом startNode где заканчивается диапазон. |
замечания
API выбора позволяет вам просматривать и изменять элементы и текст, выбранные (выделенные) в документе.
Он реализуется как одноэкранный экземпляр Selection
который применяется к документу, и содержит коллекцию объектов Range
, каждая из которых представляет одну смежную выделенную область.
Практически говоря, ни один браузер, кроме Mozilla Firefox, не поддерживает несколько диапазонов в выборе, и это тоже не поощряется спецификацией. Кроме того, большинство пользователей не знакомы с концепцией нескольких диапазонов. Таким образом, разработчик обычно может заниматься только одним диапазоном.
Отмените выбор всего, что выбрано
let sel = document.getSelection();
sel.removeAllRanges();
Выберите содержимое элемента
let sel = document.getSelection();
let myNode = document.getElementById('element-to-select');
let range = document.createRange();
range.selectNodeContents(myNode);
sel.addRange(range);
Возможно, сначала необходимо удалить все диапазоны предыдущего выбора, так как большинство браузеров не поддерживают несколько диапазонов.
Получить текст выделения
let sel = document.getSelection();
let text = sel.toString();
console.log(text); // logs what the user selected
В качестве альтернативы, поскольку функция-член toString
вызывается автоматически некоторыми функциями при преобразовании объекта в строку, вам не всегда приходится называть его самостоятельно.
console.log(document.getSelection());