Heim  >  Artikel  >  Web-Frontend  >  Warum löscht document.write() die Seite?

Warum löscht document.write() die Seite?

Susan Sarandon
Susan SarandonOriginal
2024-10-24 06:59:30752Durchsuche

Why Does document.write() Clear the Page?

Warum löscht Document.write die Seite?

Bei der Verwendung der document.write()-Methode in JavaScript stoßen Programmierer häufig auf eine Besonderheit Verhalten: Das Aufrufen von document.write() innerhalb eines Ereignishandlers wie onClick kann dazu führen, dass das Dokument gelöscht wird.

Um dieses unerwartete Ergebnis zu verstehen, ist es wichtig, die Natur von document.write() zu verstehen. Diese Funktion schreibt in den Dokumentstrom, der den kontinuierlichen Datenfluss darstellt, der das im Browser angezeigte Dokument darstellt.

Im bereitgestellten Codebeispiel:

<code class="html"><form name="myForm">
    <input type="checkbox" name="thebox" />
    <input type="button" onClick="validator()" name="validation" value="Press me for validation" />
</form>

<script type="text/javascript">
    function validator() {
        if (document.myForm.thebox.checked) {
            document.write("checkBox is checked");
        } else {
            document.write("checkBox is NOT checked");
        }
    }
</script></code>

Die validator()-Funktion wird ausgelöst, wenn auf die Schaltfläche „Validierung“ geklickt wird. Folgendes passiert:

  1. Zu diesem Zeitpunkt ist das Dokument wahrscheinlich vollständig geladen, was bedeutet, dass der Dokumentstrom geschlossen ist.
  2. Der Aufruf von document.write() löst automatisch document.open( aus. ), wodurch das aktuelle Dokument gelöscht und alle vorhandenen Elemente entfernt werden.
  3. Anschließend wird der in document.write() angegebene Text im jetzt leeren Dokument gerendert.

Folglich Die Formularelemente (Kontrollkästchen und Schaltfläche) werden von der Seite entfernt, da das gesamte Dokument aktualisiert wird und der vorherige Inhalt durch die Ausgabe von document.write() ersetzt wird.

Daher gilt bei der Arbeit mit document.write() , ist es wichtig, sicherzustellen, dass der Dokumentstrom geöffnet bleibt, indem document.open() explizit verwendet wird, bevor in ihn geschrieben wird. Andernfalls kann das unvorhersehbare Verhalten beim Löschen des Dokuments die beabsichtigte Funktionalität beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWarum löscht document.write() die Seite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn