• Записи 164
  • Теги 68
  • Комментарии 334

Компьютерное

Как получить HTML-код выделенного на странице текста

Как известно, работа с выделенным текстом на странице ведётся с помощью объектов Range, которые можно получить через window.getSelection().getRangeAt(n). Из них достаточно легко получить простой текст через метод toString(), но вот свойства innerHTML для получения кода не предусмотрено. Тем не менее, оказывается, получить HTML-код выделения можно! Делается это так: клонируем содержимое объекта Range в какой-либо DOM-элемент (пусть даже не включённый в основное DOM-дерево) с помощью метода cloneContents(), и использовать свойство innerHTML уже у него. Вот пример кода:


let selection = window.getSelection();
const element = document.createElement('div');
for (let i=0; i<selection.rangeCount; i++) {
  element.appendChild(selection.getRangeAt(i).cloneContents());
}
console.log(element.innerHTML);

Написать комментарий:

Написать комментарий