Выбор: метод getRangeAt()
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2017 года.
Метод getRangeAt() интерфейса Selection возвращает объект range, представляющий текущий выделенный фрагмент.
Если конечные точки выделенного фрагмента находятся в дереве теней, JavaScript не имеет доступа к узлам тени, и метод должен переопределить область действия range, включив в неё элемент-хост, содержащий конечную точку. На практике большинство браузеров пока не реализуют это поведение, и возвращаемый фрагмент может быть непредсказуемым.
Примечание: При выделении внутри узлов, которые могут содержать корень тени, вы можете использовать Selection.getComposedRanges() (если поддерживается), чтобы получить фрагмент выделения внутри тени или надёжно переопределить область действия выделения на узел-хост.
Синтаксис
getRangeAt(index)
Параметры
index-
Индекс фрагмента для возврата (нумерация с нуля). Отрицательное число или число, большее или равное
Selection.rangeCount, приведут к ошибке.
Возвращаемое значение
Указанный объект Range.
Примеры
let ranges = [];
sel = window.getSelection();
for (let i = 0; i < sel.rangeCount; i++) {
ranges[i] = sel.getRangeAt(i);
}
/* Each item in the ranges array is now
* a range object representing one of the
* ranges in the current selection */
Спецификации
| Спецификация |
|---|
| API выбора # dom-selection-getrangeat |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
getRangeAt |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
См. также
-
Selection, интерфейс, к которому он относится.
© 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/Selection/getRangeAt