Показать сообщение отдельно
  #7 (permalink)  
Старый 07.08.2021, 18:31
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Aetae
Только костылить разве что как-то хитро.
Ничего хитрого. Просто взять range.cloneContents(), да и обойти его рекурсивно. С текстовых узлов брать data (или как его там), с картинок - alt, теги br заменить на переносы строк, границы блочных элементов - тоже.

Хотя последнее, кстати, не так просто. Стили-то отвалятся у контента. Если это критично, то придется без cloneContents. А именно, делать обход от startContainer до endContainer, причем следующая нода берется так:
nextNode = node.firstChild || node.nextSibling || node.parentNode.nextSibling || node.parentNode.parentNode.nextSibling || ...
(цикл по парентнодам)
Ответить с цитированием