suit: XHTML textarea / innerHTML

Beitrag lesen

DOM != HTML
wo hab ich DOM = HTML geschrieben? Danke für das nutzlose Posting!

Tippe ich hier z.b.: <br/><hr/> ein und lasse mir den DOM des DIV's ausgeben steht dummerweise nur <br><hr> drin.

Du liest in einem XHTML-Dokument (verarbeitet als HTML) mit innerHTML den geparsten Inhalt aus.

Unterscheide, ob du in einem XML-Dokument einen Knoten isolierst, ob du aus einem SGML-Dokument einen Knoten isoliest oder ob du von einem Tagsoup-Parser interpretieres Zeug liest.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>weee</title>
</head>
<body>
<p id="foobar"onclick="alert(document.getElementById('foobar').innerHTML);">foo<br//bar</p>
</body>
</html>

Sollte in einem korrekt arbeitenden, SGML-fähigen Browser 'foo<br//bar' (im dom gleichbedeutend zu textknoten "foo", elementknoten "br", textknoten "bar") liefern, Firefox 3.5 liefert aber z.B. 'foo<br bar="">', Opera 9 'foo<BR //bar</p="">' oder der IE8 'foo<BR p bar<>'.

Ergo: sobald der Code "fehlerhaft" ist bzw. durch die Tagsoup-Parser interpretiert wird, kannst du innerHTML nicht mehr wirklich verwenden.