Извлечение текста из HTML с сохранением новых строк элементов уровня блока
Наиболеевопросы об извлечении текста из HTML (т.е.демонтаж теги) использовать:
jQuery( htmlString ).text();
Хотя это абстрагирует браузерные несоответствия (такие какinnerText
противtextContent
), вызов функции также игнорирует семантическое значение элементов уровня блока (таких какli
).
Сохранение новых строк элементов уровня блока (то есть семантического намерения) в различных браузерах требует немалых усилий, так какМайк Уилкокс описывает.
Казалось бы, более простым решением было бы эмулировать вставку содержимого HTML в, который удаляет HTML, сохраняя при этом новые строки элемента уровня блока. Однако вставки на основе JavaScript не запускают те же процедуры преобразования текста в текст, которые используют браузеры, когда пользователи вставляют содержимое в.
Я также пытался интегрировать Майк УилкоксКод JavaScript, Код работает в Chromium, но не в Firefox.
ВопросКакой самый простой кросс-браузерный способ извлечения текста из HTML при сохранении семантических новых строк дляэлементы уровня блока используя jQuery (иливанильный JavaScript)?
примерРассматривать:
Выберите и скопируйте весь этот вопрос.Откройстраница примера textarea.Вставьте содержимое в текстовое поле.Текстовая область сохраняет новые строки для упорядоченных списков, заголовков, предварительно отформатированного текста и т. Д. Это результат, которого я хотел бы достичь.
Для дальнейшего уточнения предоставляется любой HTML-контент, такой как:
Header
<p>Paragraph</p>
First
Second
Term
Definition
Div with <span>span</span>.<br>After the <a href="...">break</a>.
Как бы вы произвели:
Header Paragraph First Second Term Definition Div with span. After the break.
Примечание: ни отступ, ни ненормализованный пробел не имеют значения.