Denken Sie daran, dass nach dem Laden der Seite der Browserausgangsstream automatisch geschlossen wird. Danach öffnet jede Dokument.Write () -Methode, die auf der aktuellen Seite arbeitet, einen neuen Ausgabestream, der den Inhalt der aktuellen Seite (einschließlich aller Variablen oder Werte des Quelldokuments) löscht. Wenn Sie die aktuelle Seite durch das vom Skript generierte HTML ersetzen möchten, müssen Sie den HTML -Inhalt anschließen und einer Variablen zuweisen und eine Dokument verwenden. Ohne das Dokument zu löschen und einen neuen Datenstrom zu öffnen, kann ein Dokument. Write () Call kann alles tun.
Eine andere Sache, die über das Dokument erläutert werden muss. Nachdem das Skript den Inhalt in das Fenster geschrieben hat (ob dieses oder andere Fenster), muss der Ausgabestream geschlossen werden. Nach der letzten Dokument.Write () -Methode des Verzögerungsskripts müssen Sie sicherstellen, dass die Methode document.close () enthalten ist. Wenn Sie dies nicht tun, können Sie Bilder und Formulare nicht anzeigen. Und jede anschließende Methode document.write () appendiert den Inhalt nur an die Seite, ohne den vorhandenen Inhalt zu klären, um den neuen Wert zu schreiben. Um die Methode document.write () zu demonstrieren, stellen wir zwei Versionen derselben Anwendung bereit. Man schreibt Inhalte in ein Dokument, das das Skript enthält, und ein anderer schreibt Inhalte in ein separates Fenster. Klicken Sie im Texteditor auf jedes Dokument, speichern Sie es mit der .html -Dateierweiterung und öffnen Sie das Dokument im Browser.
Beispiel 1 Erstellt eine Schaltfläche, die neue HTML -Inhalte für das Dokument kombiniert, einschließlich der HTML -Tags für den neuen Dokumenttitel und die Farbattribute des Tags. Im Beispiel gibt es einen Operator +=, der den Lesern nicht bekannt ist. Es fügt die Zeichenfolge rechts zu der Variablen links hinzu. Diese Variable wird verwendet, um die Zeichenfolge zu speichern. Dieser Bediener kann leicht mehrere separate Aussagen zu langen Zeichenfolgen kombinieren. Mit dem in der NewContent -Variablen kombinierten Inhalt kann das Dokument. Write () alle neuen Inhalte in das Dokument schreiben und den Inhalt in Beispiel 1 vollständig beseitigen. Anschließend müssen Sie das Dokument aufrufen. Beim Laden des Dokuments und Klicken auf die Schaltfläche können Sie feststellen, dass sich der Dokumenttitel in der Titelleiste des Browsers dadurch ändert. Wenn Sie zum Originaldokument zurückkehren und erneut auf die Schaltfläche klicken, können Sie feststellen, dass die zweite Seite dynamisch noch schneller geladen wird, als das Originaldokument neu zu laden.
Beispiel 1 Verwenden Sie das document.write () im aktuellen Fenster.
<! DocType html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd"><Htmlmlml xmlns = "http://www.w3.org/1999/xhtml"> <title> Schreiben auf denselben Dokument </title> <script langual bgcolor = 'aqua'> <h1> Dieses Dokument ist brandneu. Newcontent += "</body> </html>" // HTML in ein neues Fenster -Dokument schreiben.
In Beispiel 2 ist die Situation etwas kompliziert, da das Skript ein untergeordnetes Fenster erstellt, in das das gesamte vom Skript generierte Dokument geschrieben wird. Um den Hinweis auf das neue Fenster in beiden Funktionen aktiv zu halten, deklarieren wir die NewWindow -Variable als globale Variable. Wenn die Seite geladen ist, ruft der Onload -Ereignis -Handler die Funktion makenewwindow () auf, die ein leeres untergeordnetes Fenster erzeugt. Zusätzlich fügen wir dem dritten Parameter des Fensters eine Eigenschaft hinzu. Open () Methode, um die Statusleiste des untergeordneten Fensters sichtbar zu machen.
Die Schaltfläche auf der Seite ruft die Subwrite () -Methode auf, und die erste Aufgabe, die sie ausführt, besteht darin, die geschlossenen Eigenschaften des untergeordneten Fensters zu überprüfen. Wenn das Referenzfenster geschlossen ist, gibt diese Eigenschaft (nur in neueren Browserversionen vorhanden) true zurück. Wenn dies der Fall ist (wenn der Benutzer das Fenster manuell schließt), ruft die Funktion die Funktion makenewwindow () erneut auf, um das Fenster wieder zu öffnen.
Nach dem Öffnen des Fensters wird der neue Inhalt als Zeichenfolgenvariable kombiniert. Schreiben Sie wie in Beispiel 1 den Inhalt sofort (obwohl es für ein separates Fenster nicht erforderlich ist) und rufen Sie dann die Methode close () auf. Beachten Sie jedoch, dass ein wichtiger Unterschied: sowohl write () () als auch close () -Methoden eindeutig untergeordnete Fenster angeben.
Beispiel 2 Verwenden Sie das document.write () in einem anderen Fenster
<! DocType html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd"><Htmlmlml xmlns="http://www.w3.org/1999/xhtml"><title>Writing to Subwindow</title><script language="JavaScript"> var newWindow function makeNewWindow(){ newWindow = window.open("","","status,height=200,width=300") } function subWrite(){ // make Neues Fenster, wenn jemand es geschlossen hat, wenn (newwindow.closed) {makenewwindow ()} // Subwindow in NewWindow.focus () // Inhalt für neue Fenster var newcontent = "<html> <head Neu. Subwindow "onclick =" subwrite () "> </form> </body> </html>