Heim > Web-Frontend > js-Tutorial > Wie gehe ich mit einem Fehler bei der Dokumentschreibausführung nach dem Laden asynchroner Skripte um?

Wie gehe ich mit einem Fehler bei der Dokumentschreibausführung nach dem Laden asynchroner Skripte um?

Barbara Streisand
Freigeben: 2024-10-20 14:13:30
Original
251 Leute haben es durchsucht

How to Handle Document Write Execution Failure After Asynchronous Script Loading?

Fehler beim Schreiben des Dokuments nach asynchronem Skriptladen

Beim asynchronen Laden eines Skripts wird das geladene Skript ausgeführt, nachdem das Dokument vollständig analysiert wurde und geschlossen. Diese Einschränkung verhindert die Verwendung von document.write() innerhalb des geladenen Skripts.

Fehlerursache

Die Fehlermeldung „Schreiben ist nicht möglich in ein Dokument aus einem asynchron geladenen externen Skript“ zeigt an, dass der Versuch, mit document.write() in das Dokument zu schreiben, fehlgeschlagen ist, weil das Skript geladen wurde, nachdem das Dokument geschlossen wurde.

Alternative DOM-Manipulation

Um dieses Problem zu beheben, müssen Sie alle document.write()-Anweisungen durch explizite DOM-Manipulation ersetzen. Dazu gehört das Erstellen von DOM-Elementen und deren Einfügen in ein übergeordnetes Element mit Methoden wie:

  • .appendChild()
  • .insertBefore()
  • .innerHTML

Beispiel

Anstatt beispielsweise document.write() in einem Inline-Skript wie folgt zu verwenden:

<code class="html"><div id="container">
<script>
document.write('<span style="color:red;">Hello</span>');
</script>
</div></code>
Nach dem Login kopieren

Sie würden das verwenden Folgender Code in einem dynamisch geladenen Skript:

<code class="javascript">var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);</code>
Nach dem Login kopieren

Alternativ können Sie das innereHTML des Containers festlegen:

<code class="javascript">var container = document.getElementById("container");
container.innerHTML = '<span style="color:red;">Hello</span>';</code>
Nach dem Login kopieren

Indem Sie document.write()-Anweisungen durch diese alternative DOM-Manipulation ersetzen Mit diesen Techniken können Sie die erfolgreiche Ausführung Ihrer asynchron geladenen Skripte sicherstellen und gleichzeitig die gewünschten Dokumentänderungen erzielen.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit einem Fehler bei der Dokumentschreibausführung nach dem Laden asynchroner Skripte um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage