Kurs: JavaScript

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.

Ein Skriptbeispiel:
    <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.

Ein Skriptbeispiel:
<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.