Dies ist eine sehr grundlegende Frage. Ich habe dieses Skript:

    <script type="text/javascript">
        function write(){
            document.write('Hello2')
        }
        write();
    </script>

Es zeigt meine komplette Seite. Und am Ende der Seite wird Hello2 angezeigt. Aber wenn ich jemals zu Entwicklertools gehe und write () aufrufe, ersetzt dies mein gesamtes HTML-Format. Nur neugierig zu wissen.

        window.onload=write;// has the same effect. Clear's my page.

Vielen Dank.

10
Akhil Sekharan 6 Dez. 2012 im 14:27

3 Antworten

Beste Antwort

Wenn das Dokument vom Browser gelesen und analysiert wird und ein script -Element vorhanden ist, das document.write aufruft, wird die Ausgabe von document.write an diesem Punkt in das Dokument eingefügt. Später, wenn die Seite vollständig geladen ist und Sie document.write verwenden, führt sie implizit eine document.open aus, die die Seite löscht und eine neue von Grund auf neu schreibt.

Mehr zu MDN:

Verwenden Sie im Allgemeinen die verschiedenen DOM-Methoden document.write zum Hinzufügen von Inhalten zu einer Seite zu verwenden a> (entweder direkt oder über eine Bibliothek wie jQuery, YUI, Schließung oder einer von mehreren anderen).

16
T.J. Crowder 6 Dez. 2012 im 10:30

Document.write schreibt in den Dokumentstrom und ruft document.write für ein geschlossenes (geladenes) Dokument auf. Es ruft automatisch document.open auf, wodurch das Dokument gelöscht wird.

0
Maddy 17 Juli 2018 im 07:36

Wenn es ausgeführt wird, nachdem die Seite vollständig geladen wurde, überschreibt es den gesamten Inhalt - einer der Punkte, die in der Antwort auf diese Frage angesprochen wurden: Warum wird document.write als eine schlechte Praxis angesehen?

7
Community 23 Mai 2017 im 10:30