Thomas Meinike: innerHTML wirklich ms-spezifisch?

Beitrag lesen

Hallo,

In Selhtml 8.0 ../javascript/objekte/all.htm#inner_html wird die Eigenschaft innerHTML unter dem all-Objekt abgehandelt, ist demnach ms-proprietär. Trotzdem wird sie von NS 6 unterstützt.
Feststellung: Also ist Netscape da dem Kokurrenten entgegen gekommen!?

Kann man wohl so sagen und das ist IMHO auch eine gute Entscheidung.

Frage: Wie lautet die Eigenschaft zum Speichern des Inhalts eines HTML-Elements DOM-korrekt, wenn es denn eine andere als innerHTML geben sollte?

Eine Moeglichkeit waere das systematische Klonen der childNodes. Hier mal ein Beispiel, welches den Inhalt eines p-Elements
<span><strong>Text</strong></span>
in ein neu erzeugtes p-Element einfuegt:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 02/02</title>
<script language="JavaScript" type="text/javascript">
<!--

function Klonen()
{
var clone1, clone2, clone3, neu, doc=document.getElementsByTagName("p")[0];

clone1=doc.childNodes[0].cloneNode();
clone2=doc.childNodes[0].childNodes[0].cloneNode();
clone3=doc.childNodes[0].childNodes[0].childNodes[0].cloneNode();

neu=document.createElement("p");
neu.appendChild(clone1).appendChild(clone2).appendChild(clone3);
document.getElementsByTagName("body")[0].appendChild(neu);
}

//-->
</script>
</head>
<body>
<form action="">
<input type="button" value="Test" onclick="Klonen()">
</form>
<p><span><strong>Text</strong></span></p>
</body>
</html>

Das muesste man in eine Funktion verpacken, die den Knotenbaum hinabsteigt, bis irgendwann object.childNodes.length den Wert 0 hat.

MfG, Thomas