Javascript DOM, получить текст узла без потери информации о интервале

Я использую javascript и хочу пересечь дерево HTML, получая весь текст, как он кажется пользователю. Однако я теряю информацию о интервалах.

предположим, у меня есть два документа:

<html>XXX<p>YY    YY</p><html>

<html>XXX<p>YY&nbsp;&nbsp;&nbsp;YY</p><html>

первый появится с 1 пробелом между Ys. Второй будет 3 места. Однако, если я пересекаю дерево и для каждого узла #text использую:

text = node.nodeValue;

текст для обоих узлов будет 3 места. Я уже не знаю что есть "настоящий" мочекаменная пространства. Я могу использовать node.innerHTML для элементов p, которые будут показывать nbsp, но я не думаю, что могу использовать innerHTML для получения только текста XXX (без какого-либо вычитания текста).

я мог бы просто получить innerHTML всего документа и проанализировать его. Однако мне также нужно получить вычисленный стиль каждого элемента, который я собираюсь использовать

window.getComputedStyle(theElement).getPropertyValue("text-align");

Итак, я буду пересекать каждый узел. Кроме того, innerHTML показывает источник как есть, при прохождении узлы "исправляют" ошибки html, добавляют конечные теги и т. д. Это хорошо, и я хотел бы сохранить это.

1 ответов


Что делать, если вы тестируете с помощью charCode? Я считаю, что регулярное пространство 32, а &nbsp; is 160.