JavaScript Selection.isCollapsed — чи виділення порожнє


Властивість isCollapsed каже, що виділення порожнє — тобто це просто курсор, а не виділений текст.

автор: NagarD

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

Це найважливіша перевірка в усій роботі з виділенням. Без неї кнопка «жирний» спрацює на порожнечі, панель форматування виринатиме на кожен клік, а getRangeAt(0) кине помилку.

Правило просте: перше, що робить будь-який обробник виділення — питає isCollapsed.

автор: NagarD

Переглядачі

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

Приклади

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

Перше, що має зробити обробник виділення.

document.addEventListener('selectionchange', () => {
    const selection = window.getSelection();

    // просто клік, а не виділення — виходимо
    if (selection.isCollapsed) {
        panel.hidden = true;
        return;
    }

    showPanel(selection.getRangeAt(0));
});
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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