wahsaga: innerHTML

Beitrag lesen

hi,

Es besteht keine Notwendigkeit im HTML Code '&', '<', '>' in Entities umzuwandeln?

Wenn ich das richtig verstanden habe, geht es hier um's vergleichen. Er hat Text im HTML Code, dort dürfen einige Zeichen nur als Entities dargestellt werden und dann hat er Text in dem diese als "normale" Zeichen enthalten sind. Der vergleich scheitert also.

Dann soll er halt nicht .innerHTML, sondern .data eines Textknotens vergleichen.

<span id="blubb">Achtung, hier folgen &quot;Entities&quot;</span>

alert(document.getElementById("blubb").innerHTML);
// gibt 'Achtung, hier folgen &quot;Entities&quot;' aus

alert(document.getElementById("blubb").firstChild.data);
// gibt 'Achtung, hier folgen "Entities"' aus

Ich verstehe auch nicht, wo hier das Problem liegt.
In der Annahme des OP? Im Gegensatz zu dem, was er laut eigenem Bekunden annimmt, zeigt .innerHTML die Entities so an, wie sie im Quelltext stehen (ggf. abweichend bei Browsern, die hier zu viel Eigeninterpretation reinbringen) - weil das nun mal das "innere HTML" ist.
.data des Textknotens hingegen zeigt das Ergebnis des geparsten #PCDATA-Inhaltes an.

Oder liegt das Problem darin, _im Javascript_ die Vergleichstexte zu hinterlegen?
Dann sollte er in XHTML sein Script, wenn inline, ja sowieso bereits in einem CDATA-Bereich eingebunden haben - keine Notwendigkeit für Entities á la &lt;/&gt; mehr, und die Sonderzeichen " und/oder ' lassen sich auch so maskieren, dass sie den JS-Interpreter nicht mehr stören. Und bei ausgelagertem Script bestünde für &lt;/&gt; ja auch keine Notwendigkeit.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }