6 Stimmen

Javascript DOM, erhalten Sie Knoten Text ohne Verlust Abstand Info

Ich verwende Javascript und möchte den HTML-Baum durchlaufen, um den gesamten Text so zu erhalten, wie er dem Benutzer angezeigt wird. Ich verliere jedoch Informationen über die Abstände.

Nehmen wir an, ich habe zwei Dokumente:

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

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

Das erste wird mit 1 Leerzeichen zwischen den Ys erscheinen. Das zweite wird 3 Leerzeichen haben. Wenn ich jedoch den Baum durchlaufe und für jeden #Text-Knoten verwende:

text = node.nodeValue;

dann hat der Text für beide Knotenpunkte 3 Leerzeichen. Ich weiß nicht mehr, welcher der beiden Knoten die "echten" nbsp Leerzeichen hat. Ich kann node.innerHTML für die p-Elemente verwenden, die die nbsp zeigen wird, aber ich glaube nicht, dass ich innerHTML verwenden kann, um nur den XXX-Text zu erhalten (ohne irgendeine Art von Text Subtraktion).

Ich könnte einfach innerHTML des gesamten Dokuments abrufen und dieses analysieren. Ich muss jedoch auch den berechneten Stil jedes Elements abrufen, den ich mit

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

Ich werde also jeden Knoten durchlaufen. Außerdem zeigt innerHTML die Quelle so an, wie sie ist, während das Durchlaufen der Knoten HTML-Fehler "behebt", indem End-Tags hinzugefügt werden usw. Das ist eine gute Sache und etwas, das ich gerne beibehalten möchte.

1voto

bfavaretto Punkte 70403

Was ist, wenn Sie nach charCode testen? Ich glaube, ein normales Leerzeichen ist 32 , während &nbsp; es 160 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X