In einem HTML-Dokument kann der Aufruf von document.write() innerhalb einer Funktion unerwartete Folgen haben, wie in der Abbildung gezeigt Folgender Code:
<code class="html"><input type="checkbox" name="thebox" /> <input type="button" onClick="validator()" name="validation" value="Press me for validation" /></code>
<code class="javascript">function validator() { if (document.myForm.thebox.checked) document.write("checkBox is checked"); else document.write("checkBox is NOT checked"); }</code>
Problem: Nach dem Klicken auf die Validierungsschaltfläche verschwinden die Formularelemente (Kontrollkästchen und Schaltfläche) von der Seite.
Erklärung:
document.write() ist eine leistungsstarke Funktion, die direkt in den Ausgabestream des HTML-Dokuments schreibt. Beim Aufruf innerhalb einer Funktion hat document.write() die folgenden Auswirkungen:
In diesem Fall öffnet document.write() das Dokument automatisch erneut, wenn validator() aufgerufen wird , wodurch die gesamte Seite, einschließlich der Formularelemente, gelöscht wird.
Lösung:
Um dieses Verhalten zu vermeiden, sollte man alternative Methoden verwenden, um den Dokumentinhalt zu manipulieren, wie z document.createElement() oder die DOM-Manipulations-APIs.
Das obige ist der detaillierte Inhalt vonWelche Konsequenzen hat die Verwendung von document.write() in JavaScript-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!