Moin Moin!
Ich erzeuge per DOM auf Anforderung (Klick) unter anderem eine Tabelle, die in ein DIV eingefügt wird. Firefox und Opera machen das, was ich will. MSIE 6.0.2800.1106 (andere Version habe ich gerade nicht greifbar) zeigt die Tabelle nicht an, wohl aber die beiden ebenfalls per DOM angelegten Paragraphs vor und hinter der Tabelle. Die Tabelle ist aber im DOM-Baum vorhanden, wie man am alert(innerHTML) sehen kann. Firefox meldet weder Fehler noch Warnungen, ebenso wenig Opera oder IE.
Ich habe meinen Code auf das folgende Beispiel abgemagert. Ein Klick auf "Tabelle einfügen" fügt P, TABLE, P in das DIV ein. Ein Klick auf "HTML" zeigt innerHTML des Body-Tags an, nach dem Einfügen der Tabelle auch diese.
IE zeigt nur die beiden Paragraphs "oberhalb" und "unterhalb", Opera und Firefox zeigen auch die Tabellenzellen "links" und "rechts".
Was übersehe ich hier?
Alexander
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>warum?</title>
<script type="text/javascript">
function tabelleEinfuegen()
{
var div=document.getElementById('xxx');
var table,tr,td,p;
p=document.createElement('p');
p.appendChild(document.createTextNode('oberhalb'));
div.appendChild(p);
table=document.createElement('table');
div.appendChild(table);
table.border=1;
tr=document.createElement('tr');
table.appendChild(tr);
td=document.createElement('td');
tr.appendChild(td);
td.appendChild(document.createTextNode('links'));
td=document.createElement('td');
tr.appendChild(td);
td.appendChild(document.createTextNode('rechts'));
p=document.createElement('p');
p.appendChild(document.createTextNode('unterhalb'));
div.appendChild(p);
}
</script>
</head>
<body>
<p>
<a href="#" onclick="return tabelleEinfuegen()">Tabelle einfügen</a>
<a href="#" onclick="alert(document.getElementsByTagName('body')[0].innerHTML); return false;">HTML</a>
</p>
<div id="xxx"></div>
</body>
</html>