JavaScript Range.cloneContents() — копія вмісту діапазону
Метод cloneContents() повертає копію вмісту діапазону — як DocumentFragment. Оригінал лишається на місці.
Загальний опис
Повертається саме фрагмент, а не рядок: розмітка всередині зберігається. Тому скопійований шматок можна одразу вставити деінде — жирний текст лишиться жирним.
Якщо потрібен саме текст, простіше взяти range.toString().
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 9 | 12 | 9 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
Приклади
+ запропонувати свій приклад у пісочниці
Скопіювати виділене в іншу частину сторінки — з розміткою.
HTML
<p id="source">Текст із <b>жирним</b> усередині</p>
<div id="copy"></div>
JS
const selection = window.getSelection();
if (!selection.isCollapsed) {
const fragment = selection.getRangeAt(0).cloneContents();
// розмітка збереглась — жирне лишилось жирним
document.getElementById('copy').append(fragment);
// а якщо треба лише текст:
console.log(selection.getRangeAt(0).toString());
}
Коментарі
Коментарів ще немає — будьте першим!