Spec-Zone.ru › Web APIs

Метод Window: getSelection()

Базовая Широко поддерживается

Эта функция хорошо устоялась и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2017 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Метод getSelection() интерфейса Window возвращает объект Selection, связанный с document окна, представляющий выделенный пользователем фрагмент текста или текущую позицию курсора.

Синтаксис

getSelection()

Параметры

Нет.

Возвращаемое значение

Объект Selection или null, если связанный документ не имеет контекста просмотра (например, окно является <iframe>, которое не прикреплено к документу).

При вызове на <iframe>, которое не отображается (например, где display: none установлено), Firefox возвращает null, в то время как другие браузеры возвращают объект Selection с Selection.type, установленным на None.

Примеры

function foo() {
  const selObj = window.getSelection();
  alert(selObj);
  const selRange = selObj.getRangeAt(0);
  // do stuff with the range
}

Примечания

Строковое представление объекта Selection

В JavaScript, когда объект передается в функцию, ожидающую строку (например, window.alert() или document.write()), вызывается метод toString() объекта, а возвращаемое значение передается в функцию. Это может сделать объект похожим на строку при использовании с другими функциями, хотя на самом деле это объект со свойствами и методами.

В примере выше, selObj.toString() автоматически вызывается при передаче в window.alert(). Однако попытка использовать свойство или метод JavaScript String, такие как length или substr, напрямую на объекте Selection, приведет к ошибке, если у него нет этого свойства или метода, и может привести к неожиданным результатам, если они есть. Для использования объекта Selection как строки, вызовите его метод toString() напрямую:

const selectedText = selObj.toString();
  • selObj — это объект Selection.
  • selectedText — это строка (выделенный текст).

Связанные объекты

Вы можете вызвать Document.getSelection(), который работает идентично Window.getSelection().

Стоит отметить, что в настоящее время getSelection() не работает с содержимым элементов <textarea> и <input> в Firefox и Edge (Legacy). Для решения этой проблемы можно использовать HTMLInputElement.setSelectionRange() или свойства selectionStart и selectionEnd.

Также обратите внимание на разницу между выделением и фокусом. Document.activeElement возвращает фокусированный элемент.

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

Спецификация
Selection API
# dom-window-getselection

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

Рабочие столы Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getSelection 1 12 1 9 1 18 4 10.1 1 1.0 4.4

См. также

  • Selection API
  • Selection
  • Range
  • Document.getSelection()
  • HTMLInputElement.setSelectionRange()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API