JavaScript Range.collapsed — чи діапазон порожній


Властивість collapsed каже, чи збігаються початок і кінець діапазону: true означає, що діапазон порожній.

автор: NagarD

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

Схлопнутий діапазон — це і є курсор: точка без ширини. Тобто текстовий курсор у полі вводу і виділення нульової довжини — одне й те саме з погляду DOM.

Перевіряти цю властивість треба перед будь-якою дією над виділенням: інакше кнопка «жирний» спрацює на порожнечі.

автор: NagarD

Переглядачі

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

Приклади

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

Нічого не виділено — нічого не робимо.

HTML

<p id="editor">Виділений текст стане жирним</p>

JS

// у демо виділення створюємо самі; вручну виділи текст і спробуй ще раз
const initialRange = document.createRange();
initialRange.selectNodeContents(document.getElementById('editor').firstChild);
window.getSelection().removeAllRanges();
window.getSelection().addRange(initialRange);

const range = window.getSelection().getRangeAt(0);

if (range.collapsed) {
    console.log('Це просто курсор, а не виділення');
} else {
    range.surroundContents(document.createElement('b'));
    console.log('Виділене загорнуто в <b>');
}
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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