JavaScript Range.selectNodeContents() — діапазон навколо вмісту


Метод selectNodeContents() охоплює вміст вузла, не чіпаючи сам теґ.

автор: NagarD

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

Найпростіший спосіб виділити весь текст блоку програмно: зробити діапазон по його вмісту й віддати його Selection.

Саме так працює кнопка «виділити весь код» у блоках коду на сайтах.

автор: NagarD

Порада

Для копіювання в буфер сьогодні простіше navigator.clipboard.writeText() — виділяти нічого не треба взагалі.

автор: NagarD

Переглядачі

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

Приклади

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

Кнопка «виділити весь код».

HTML

<pre id="code">const x = 1;</pre>
<button id="select">Виділити</button>

JS

document.getElementById('select').addEventListener('click', () => {
    const range = document.createRange();
    range.selectNodeContents(document.getElementById('code'));

    const selection = window.getSelection();
    selection.removeAllRanges();
    selection.addRange(range);
});
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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