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() вам вернут строку, которую выделил пользователь.

Пример

js
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(), как тут:

js
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

Смотрите также