In einem asynchron geladenen Skript könnte dieser Code ersetzt werden durch:

var container = document.getElementById(\\\"container\\\");var content = document.createElement(\\\"span\\\");content.style.color = \\\"red\\\";content.innerHTML = \\\"Hello\\\";container.appendChild(content);

Alternativ könnte der folgende vereinfachte Code verwendet werden, da der Container leer ist:

var container = document.getElementById(\\\"container\\\");container.innerHTML = \\'Hello\\';

Durch die Übernahme dieser DOM-Manipulationstechniken können Entwickler effektiv aus asynchron geladenen Skripten in Dokumente schreiben und so die Einschränkungen umgehen durch document.write() auferlegt.

","image":"http://www.luping.net/uploads/20241104/17307187276728ac0702fe7.jpg","datePublished":"2024-11-09T03:16:22+08:00","dateModified":"2024-11-09T03:16:22+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“
Titelseite > Programmierung > Warum ist document.write() in asynchron geladenen Skripten eingeschränkt?

Warum ist document.write() in asynchron geladenen Skripten eingeschränkt?

Veröffentlicht am 09.11.2024
Durchsuche:763

Why is document.write() Restricted in Asynchronously Loaded Scripts?

Ausführungseinschränkungen in asynchron geladenen Skripten: Grundlegendes zu den Einschränkungen von document.write()

Der Versuch, aus einem asynchron geladenen Skript in ein Dokument zu schreiben, führt zu einer Erhöhung eine Konsolenmeldung: „Fehler beim Ausführen von ‚Schreiben‘ für ‚Dokument‘: Es ist nicht möglich, aus einem asynchron geladenen externen Skript in ein Dokument zu schreiben, es sei denn, es wird explizit geöffnet.“ Diese Meldung kann trotz des erwarteten Verhaltens des Skripts erscheinen und Entwickler verwirren.

Warum die Einschränkung besteht

Asynchron geladene Skripte werden oft ausgeführt, nachdem das Dokument analysiert wurde und geschlossen. Folglich wird die Verwendung von document.write() aus solchen Skripten problematisch, da das Dokument nicht mehr zum Schreiben geöffnet ist.

Lösung: Explizite DOM-Manipulation

Anstelle der Verwendung von document .write() müssen Entwickler das DOM in asynchron geladenen Skripten explizit manipulieren. Dazu gehört das Erstellen von DOM-Elementen und deren Einfügen in das gewünschte übergeordnete Element mithilfe von Methoden wie .appendChild(), .insertBefore() oder dem Setzen von .innerHTML.

Beispiel: DOM-Manipulation

Betrachten Sie zur Veranschaulichung das folgende Inline-Skript:

In einem asynchron geladenen Skript könnte dieser Code ersetzt werden durch:

var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);

Alternativ könnte der folgende vereinfachte Code verwendet werden, da der Container leer ist:

var container = document.getElementById("container");
container.innerHTML = 'Hello';

Durch die Übernahme dieser DOM-Manipulationstechniken können Entwickler effektiv aus asynchron geladenen Skripten in Dokumente schreiben und so die Einschränkungen umgehen durch document.write() auferlegt.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729404437 Bei Verstößen 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