Geändertes Skript (asynchron geladen, mit DOM-Manipulation):

var container = document.getElementById(\\\"container\\\");var content = document.createElement(\\\"span\\\");content.style.color = \\\"red\\\";content.innerHTML = \\\"Hello\\\";container.appendChild(content);
","image":"http://www.luping.net/uploads/20241023/17296754466718c0b652a9a.jpg","datePublished":"2024-11-07T17:21:27+08:00","dateModified":"2024-11-07T17:21:27+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“

Wie kann der Fehler „Es ist nicht möglich, aus einem asynchron geladenen externen Skript in ein Dokument zu schreiben“ behoben werden?

Veröffentlicht am 07.11.2024
Durchsuche:933

How to Resolve \

Fehler: „Es ist nicht möglich, aus einem asynchron geladenen externen Skript in ein Dokument zu schreiben“

Problem:

Asynchrones Laden von Skripte können zu Problemen führen, wenn versucht wird, ein Dokument mit document.write() zu ändern. Nach der Ausführung des Seitenladevorgangs wird ein Skript asynchron heruntergeladen, schlägt jedoch mit der Konsolenmeldung fehl: „Es ist nicht möglich, aus einem asynchron geladenen externen Skript in ein Dokument zu schreiben, es sei denn, es wird explizit geöffnet.“

Erläuterung:

Asynchron geladene Skripte werden ausgeführt, nachdem das Dokument analysiert und geschlossen wurde. Folglich sind Vorgänge wie document.write() in diesen Skripten nicht mehr verfügbar.

Lösung:

Um dieses Problem zu beheben, ersetzen Sie document.write()-Aufrufe durch explizite DOM-Manipulationen. Dazu gehört das Erstellen von DOM-Elementen und deren Einfügen in das übergeordnete Element mithilfe von appendChild(), insertBefore() oder dem Festlegen von innerHTML.

Beispiel:

Originalskript (Inline, mit Dokument. write()):

Geändertes Skript (asynchron geladen, mit DOM-Manipulation):

var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);
Freigabeerklärung Dieser Artikel wird reproduziert unter: 1729404376 Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3