Window.getSelection()

Коротко

Метод возвращает объект 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) .

Спецификации

Спецификация Статус Комментарий
Selection API
Определение 'Window.getSelection()' в этой спецификации.
Рабочий черновик Новая специф.
HTML Editing APIs
Определение 'Window.getSelection()' в этой спецификации.
Редакторский черновик Начальное определение

Совместимость с браузером

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Особенность Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) 9 (Да) (Да)
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка ? (Да) ? ? ? ?

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