JavaScript Range.collapsed — чи діапазон порожній
Властивість collapsed каже, чи збігаються початок і кінець діапазону: true означає, що діапазон порожній.
Загальний опис
Схлопнутий діапазон — це і є курсор: точка без ширини. Тобто текстовий курсор у полі вводу і виділення нульової довжини — одне й те саме з погляду DOM.
Перевіряти цю властивість треба перед будь-якою дією над виділенням: інакше кнопка «жирний» спрацює на порожнечі.
автор: NagarD
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| collapsed | 1+ | 1+ | 1+ | 7+ | 12+ | 9+ |
| Переглядач | ||||
|---|---|---|---|---|
| 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>');
}
Коментарі
Коментарів ще немає — будьте першим!