Hallo Thomas,
Hmmm, das hab ich ja noch nie gehoert und halte ich ehrlich gesagt auch fuer ein Geruecht. Selbstverstaendlich kann man document.write auch noch nach Laden der Seite verwenden und es funktioniert. Wichtig dabei ist halt das Oeffnen vorher und das Schliessen danach.
:-)) Noe. Netsi ist da eigen. Im Zusammenhang mit Divs - die ja wie Layer behandelt werden - und Tabellen tut er es nicht. Ich gebe zu, es klingt abstrus. Aber ich hatte das mit der Version 4.6 und kann das gerne reproduzieren. Es hat mich mehrere Tage gekostet. :-(
Es gibt aber nichts, was nicht schon mal dagewesen wäre. Drum habe ich meine angeborene Faulheit auch mal ueberwunden und den entsprechenden Thread im Archiv gesucht.
Unter <../../sfarchiv/1999_2/t03554.htm#a17085> steht es.
Das ganze ist ein wenig lang, deshalb hier die entsprechende Passage:
<cite>
Ich habe tatsaechlich mal die gesamte Tabelle in eine DIV ausgegeben. Das ging solange gut, wie ich diese absolut positioniert habe. Habe ich aber position:relative verwendet, hat Netsi nichts darin erscheinen lassen, obwohl keine JS-Errors auftraten (Ja ich weiss, dass ich erst javascript: in die location bar eintippen muss). Also habe ich mal von Anfang an etwas in die DIV geschrieben, und das document.write() mit einem alert() blockiert (siehe folgenden Quelltext). Ergebnis: Der urspruengliche Inhalt wurde dargestellt, die alert()-Box sprang auf, und sobald ich OK gedrueckt habe, war der Inhalt der DIV weg. Ich meine WEG, der neue Inhalt ist nicht erschienen, nur eine leere Flaeche ist zurueckgeblieben. (Der generierte Output war uebrigens korrekt, wie sich feststellen liess, nachdem ich ihn mal von Anfang an, also im Quelltext, in die DIV eingefuegt habe.)
</cite>
Die Passge bzgl. 'document.write() wird nur beim Laden ausgewertet' finde ich jetzt natürlich nicht. <grummel> Ist aber auch nicht so wichtig. Das Verhalten ist im Zitat treffend beschrieben.
'Wird nicht ausgewerdet' ist eigentlich auch nicht korrekt. Richtig müßte es heißen, das document wird zurueckgesetzt, aber nicht mehr beschrieben.
Zum Problem: Ein Layer wird in Netscape wie ein eigenes Dokument behandelt. Die Idee bei Netscape ist naemlich nicht saemtlich Style-Angaben zu aendern, wie Microsoft, sondern wirklich mit Layern zu arbeiten wie in einem Grafikprogramm. Das heisst fertige Layer verschieben, anzeigen oder verbergen - die Sichtweise auf das Dokument aendern und nicht das Dokument selbst. Das heisst natuerlich, dass ein Layer nicht beliebig in andere HTML Elemente verschachtelt werden kann, sonsdern eigentlich nur als Kind von <body> oder einem anderen Layer auftreten sollte.
Jepp, das ist meiner bescheiden Meinung nach auch der veruenftigere Ansatz. Aber das sollte ich vielleicht nicht sagen, sonst geht hier wieder der Browserwar los.
Deswegen ist es auch muessig beide Browser dahingehend zu vergleichen - das Konzept ist zu verschieden.
<g> Aber leben müssen wir damit ... <g>
Viele Gruesse
Kess