6.5.1 document.write
Mit der Methode write() können Sie eine Ausgabe in einem
HTML-Dokument erzeugen. Dabei schreiben Sie diese Ausgabe direkt in
den HTML-Code hinein. Für den Betrachter Ihrer Seite sieht es so
aus, als hätte die Ausgabe bereits im ursprünglichen Text
der Seite gestanden und wäre nicht erst durch eine
JavaScript-Anweisung erzeugt worden.
Die Syntax der Methode lautet:
document.write(text);
Diese Syntax kennen Sie bereits. document.write() bietet aber noch
eine Erweiterung, die sich in der Praxis häufig als nützlich
erweist. Sie können nämlich auch mehrere Texte als Argument
übergeben, d.h. durch Kommata getrennt in die Klammern schreiben,
die dann alle hintereinander in die Seite ausgegeben werden.
<script type="text/javascript">
var i = 0;
document.write("Im Augenblick ist i: ", i, ". <br>");
</script>
Ansehen
Der im Argument angegebene Text wird als HTML-Text interpretiert. Das
bedeutet, dass Sie hier beliebige HTML-Tags verwenden können.
Theoretisch ist es also möglich, eine komplette HTML-Seite mit
Hilfe von document.write() zu schreiben, obwohl das natürlich in
der Praxis eher mehr Schreibarbeit bedeutet als weniger.
document.write() arbeitet Stream-orientiert. Das bedeutet, dass Sie
solange in das aktuelle Dokument hineinschreiben können, wie
dieses nicht abgeschlossen wurde. Das Schließen des aktuellen
Dokuments geschieht in dem Augenblick, in dem der Browser das Tag
</body> liest oder in dem Sie vom Programm aus die Methode
document.close() aufrufen. Nach dem Schließen des Dokuments wird
mit document.write() eine neue Seite erzeugt, in die dann die Ausgabe
erfolgt.
<html>
<head>
<title>Beispiel für document.write()</title>
<head>
<body>
<script type="text/javascript">
document.write("Ausgabe ins aktuelle Dokument<br>");
</script>
<form name="formular">
<input type="button" value="Ausgabe"
onClick='document.write("Ausgabe in neues Dokument");'>
</form>
</body>
</html>
Ansehen
Die erste Ausgabe erfolgt direkt beim Aufbau der Seite, es steht also
wirklich der Text "Ausgabe ins aktuelle Dokument" in der
Seite. Die zweite Ausgabe mit document.write() erfolgt aber erst dann,
wenn der Benutzer auf den Button klickt, also zu einem Zeitpunkt, zu
dem der Browser die gesamte Seite inklusive </body> gelesen und
verarbeitet hat. Der Text wird deshalb nicht in die aktuelle Seite
geschrieben, sondern in eine neue leere Seite.
Übung 6.10:
Probieren Sie dieses Skript einmal aus - die Merkregel ist, dass
Sie document.write() nie beim Klick auf einen Button verwenden sollten.
