Dokument: write()-Methode
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.
Warnung:
Die Verwendung der document.write()
-Methode wird stark abgeraten.
Wie die HTML-Spezifikation selbst warnt:
Diese Methode hat ein sehr eigenwilliges Verhalten. In einigen Fällen kann diese Methode den Status des HTML-Parsers beeinflussen, während dieser ausgeführt wird. Dies kann zu einem DOM führen, das nicht mit der Quelldatei des Dokuments übereinstimmt (z.B. wenn der geschriebene String "
<plaintext>
" oder "<!--
" ist). In anderen Fällen kann der Aufruf zunächst die aktuelle Seite leeren, als obdocument.open()
aufgerufen worden wäre. In weiteren Fällen wird die Methode einfach ignoriert oder es wird eine Ausnahme ausgelöst. Benutzeragenten dürfen dazu übergehen,script
-Elemente, die über diese Methode eingefügt werden, nicht auszuführen. Und um die Sache noch schlimmer zu machen, kann das genaue Verhalten dieser Methode in manchen Fällen von der Netzwerklatenz abhängen, was zu schwer debugbaren Fehlern führen kann. Aus all diesen Gründen wird die Verwendung dieser Methode stark abgeraten. Vermeiden Sie daher die Verwendung vondocument.write()
— und aktualisieren Sie, wenn möglich, vorhandenen Code, der diese Methode noch nutzt.
Die document.write()
-Methode schreibt einen Textstring in einen durch document.open()
geöffneten Dokumentenstrom.
Hinweis:
Da document.write()
in den Dokumentenstrom schreibt, führt ein Aufruf von document.write()
auf einem geschlossenen (geladenen) Dokument automatisch document.open()
aus, was das Dokument leeren wird.
Syntax
write(markup)
Parameter
markup
-
Ein String, der den in das Dokument zu schreibenden Text enthält.
Rückgabewert
Keiner (undefined
).
Beispiele
<p>Some original document content.</p>
<button onclick="newContent()">Replace document content</button>
function newContent() {
document.open();
document.write("<h1>Out with the old, in with the new!</h1>");
document.close();
}
Hinweise
Der Text, den Sie schreiben, wird in das Strukturmodell des Dokuments geparst. Im obigen Beispiel wird das h1
-Element zu einem Knoten im Dokument.
Ein Schreiben in ein bereits geladenes Dokument ohne Aufruf von document.open()
wird automatisch document.open()
aufrufen. Nach dem Schreiben rufen Sie document.close()
auf, um dem Browser mitzuteilen, dass das Laden der Seite abgeschlossen ist.
Wenn der document.write()
-Aufruf innerhalb eines eingebetteten HTML-<script>
-Tags enthalten ist, wird document.open()
nicht aufgerufen. Zum Beispiel:
<script>
document.write("<h1>Main title</h1>");
</script>
document.write()
und document.writeln
funktionieren nicht in XHTML-Dokumenten (es wird ein Fehler "Operation wird nicht unterstützt" (NS_ERROR_DOM_NOT_SUPPORTED_ERR
) in der Fehlerkonsole angezeigt). Dies passiert, wenn Sie eine lokale Datei mit der .xhtml-Dateierweiterung oder ein Dokument mit einem application/xhtml+xml
MIME-Typ öffnen. Weitere Informationen sind in den W3C XHTML FAQ verfügbar.
Die Verwendung von document.write()
in verzögerten oder asynchronen Skripten wird ignoriert und Sie erhalten eine Meldung wie "Ein Aufruf von document.write()
von einem asynchron geladenen externen Skript wurde ignoriert" in der Fehlerkonsole.
Nur in Edge führt der mehrfache Aufruf von document.write()
in einem <iframe>
zum Fehler "SCRIPT70: Permission denied".
Ab Version 55 führt Chrome <script>
-Elemente, die über document.write()
injiziert wurden, unter bestimmten Bedingungen nicht mehr aus. Weitere Informationen finden Sie unter Intervening against document.write().
Spezifikationen
Specification |
---|
HTML Standard # dom-document-write-dev |
Browser-Kompatibilität
BCD tables only load in the browser