Maison > interface Web > js tutoriel > Comment résoudre l'erreur « Il n'est pas possible d'écrire dans un document à partir d'un script externe chargé de manière asynchrone » ?

Comment résoudre l'erreur « Il n'est pas possible d'écrire dans un document à partir d'un script externe chargé de manière asynchrone » ?

Barbara Streisand
Libérer: 2024-10-20 14:07:02
original
1038 Les gens l'ont consulté

How to Resolve

Erreur : « Il n'est pas possible d'écrire dans un document à partir d'un script externe chargé de manière asynchrone »

Problème :

Chargement asynchrone de les scripts peuvent entraîner des problèmes lors de la tentative de modification d'un document à l'aide de document.write(). Après l'exécution du chargement de la page, un script est téléchargé de manière asynchrone mais échoue avec le message de la console "Il n'est pas possible d'écrire dans un document à partir d'un script externe chargé de manière asynchrone à moins qu'il ne soit explicitement ouvert."

Explication :

Les scripts chargés de manière asynchrone s'exécutent une fois le document analysé et fermé. Par conséquent, les opérations telles que document.write() deviennent indisponibles à partir de ces scripts.

Solution :

Pour résoudre ce problème, remplacez les appels document.write() par des manipulations explicites du DOM. Cela implique de créer des éléments DOM et de les insérer dans l'élément parent à l'aide de appendChild(), insertBefore() ou de définir innerHTML.

Exemple :

Script original (en ligne, avec document. write() :

<code class="html"><div id="container">
<script>
document.write('<span style="color:red;">Hello</span>');
</script>
</div></code>
Copier après la connexion

Script modifié (chargé de manière asynchrone, avec manipulation DOM) :

<code class="javascript">var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal