JavaScript Selection.getRangeAt() — діапазон виділення


Метод getRangeAt() повертає діапазон виділення за його номером. Майже завжди потрібен нульовий.

автор: NagarD

Загальний опис

Виділення теоретично може складатись із кількох діапазонів (у Firefox їх можна зробити з Ctrl), але на практиці працюють із першим.

І головне: якщо виділення порожнє, діапазонів немає взагалі, і виклик кине помилку. Тому перед ним завжди перевіряють rangeCount або isCollapsed.

автор: NagarD

Нотатка

getRangeAt(0) на порожньому виділенні кидає IndexSizeError. Перевірка rangeCount > 0 обов'язкова.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
getRangeAt 1+ 1+ 1+ 7+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
getRangeAt yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Перевірка перед викликом — інакше помилка.

(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

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід