Window.getSelection()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
Коротко
Метод возвращает объект Selection
, представленный в виде диапазона текста, который пользователь выделил на странице.
Синтаксис
selection = window.getSelection();
Значение
Объект Selection
.
При добавлении в параметр пустую строку или воспользовавшись методом Selection.toString()
вам вернут строку, которую выделил пользователь.
Пример
function foo() {
var selObj = window.getSelection();
alert(selObj);
var selRange = selObj.getRangeAt(0);
// вернёт диапазон Range
}
Примечания
String representation of the Selection object
В JavaScript при попытке передать в функцию, принимающую строку (как на пример window.alert()
или же document.write()
), функция попробует сделать из любого параметра строку, даже если этот параметр является объектом, функцией со своими методами и свойствами.
В приведённом выше примере selObj.toString() автоматически задействуется, когда мы передаём в
window.alert()
переменную selObj как параметр, который должен быть строкой. Однако мы не можем использовать свойства и метода объекта String, как на пример : length
, substr
. В следствии чего, вам необходимо будет применить вручную метод toString(), как тут:
var selectedText = selObj.toString();
selObj
это объектSelection
.selectedText
это строка (Выделенный текст).
Родственные объекты
Вы так же можете использовать такой способ вызова Document.getSelection()
, который работает идентично Window.getSelection()
.
Поля ввода HTML (inputs) предоставляют более удобный API для работы с выделенным текстом (смотрите HTMLInputElement.setSelectionRange()
).
На заметку, разница между selection и focus. Document.activeElement
- это то, что вернётся элемент, который выделен (focused) .
Спецификации
Specification |
---|
Selection API # dom-window-getselection |
Совместимость с браузерами
BCD tables only load in the browser