Der Martin: document.write

Beitrag lesen

Hi,

Hallo,

»» »» Zudem sollte man bestenfalls mit document.open() das Dokument öffnen und mit document.close() das Dokument wieder schliessen.
»» wozu sollte das gut sein?
Weil der Schreibzugriff geschlossen werden muss, da man sonst den Eindruck erhält, das Dokument lade ewig.

kann es sein, dass dir hier etwas Hintergrundwissen fehlt?

Also: Normalerweise wird document.write() *während* es Renderns eines Dokuments verwendet und schreibt dann Inhalte ins Dokument, die so verarbeitet werden, als stünden sie exakt so im Quellcode. Dabei braucht's kein document.open(), denn das Dokument *ist* zu der Zeit zum Schreiben geöffnet. Auch ein document.close() wäre in der Phase schlecht.

Sobald du mit document.write() etwas schreibst, muss der Browser neu Rendern. Mit document.close() sagst du ihm also, das er nicht mehr auf irgendwas warten brauch und aufhören kann.

Sobald du mit document.write() etwas schreibst, *nachdem* das Rendern des Dokuments abgeschlossen ist, wird implizit(!) document.open() aufgerufen und damit ein neues, leeres Dokument erstellt. Das bisher geladene Dokument geht dabei flöten. So sägt man sich also quasi den Ast ab, auf dem man sitzt. Das "macht man nicht".

Die einzig sinnvolle Anwendung für document.write() nach dem Rendern des Dokuments ist, in ein *anderes* Dokument zu schreiben (z.B. in ein Popup oder eines der Nachbarfenster in einem Frameset). Dann - und nur dann - ist auch die Abfolge open - write - close vernünftig.

Schönes Wochenende,
 Martin

--
Eine Neandertaler-Sippe sitzt in ihrer kalten Höhle. Seufzt der Stammesälteste: "Hoffentlich erfindet bald jemand das Feuer!"