JavaScript Selection.getRangeAt() — діапазон виділення
Метод getRangeAt() повертає діапазон виділення за його номером. Майже завжди потрібен нульовий.
автор: NagarD
Загальний опис
Виділення теоретично може складатись із кількох діапазонів (у Firefox їх можна зробити з Ctrl), але на практиці працюють із першим.
І головне: якщо виділення порожнє, діапазонів немає взагалі, і виклик кине помилку. Тому перед ним завжди перевіряють rangeCount або isCollapsed.
автор: NagarD
- Нотатка
-
getRangeAt(0) на порожньому виділенні кидає IndexSizeError. Перевірка rangeCount > 0 обов'язкова.
автор: NagarD
Переглядачі
Приклади
+ запропонувати свій приклад у пісочниці
Перевірка перед викликом — інакше помилка.
(function () {
const selection = window.getSelection();
// без цієї перевірки — IndexSizeError
if (selection.rangeCount === 0) {
return;
}
const range = selection.getRangeAt(0);
console.log(range.toString());
console.log(range.getBoundingClientRect());
})();
автор: NagarD