+ DOM + FRAMES
Joerg Doelz
- dhtml
folgendes konstrukt:
frameset
->view.html
-->js:func foo()
-->table id="view" leer
->data.php
-->table id="data" + viele zeilen & spalten
die aufgabe ist, den kompletten inhalt von tabelle "data" in tabelle "view" zu packen.
fuer den hintergrund sollte man erwaehnen, dass die data.php auf aktionen in der view.html reagiert, und immer eine andere tabelle generiert, deshalb dieses konstrukt.
function foo{
try {
var sem = parent.data.document.getElementById("data").firstChild;
if(sem.outerHTML){
var htext = sem.outerHTML;
document.getElementById("view").outerHTML
= "<table id="view">" + htext + "</table>";
}else{
var tem = document.getElementById("view");
tem.appendChild(sem);
}
return true;
}catch(e){
alert(e);
}
return false;
}
warum ich dies schreibe?
man darf eigentlich annehmen, dass das objekt 'sem' beliebig verwendbar ist, und tem.appendChild(sem) das objekt einfuegt.
Leider ist das nur die halbe wahrheit.
der IE wirft bei genau diesem appendChild die verschiedensten Fehler: Invalid Argument/ Ungueltiges Argument (Dialogbox, ohne try)
Object Error (wert in e)
Kompletter AusnahmeFehler
also der ie in allen versionen kann keine frameuebergreifenden Document Nodes benutzen. mozilla machts :)
ach ja: lesen kann man sem uebrigens trozdem
tem: TargetEleMent
sem: SourceEleMent
foo: bar :)
viel spass
joshi