Maison  >  Article  >  interface Web  >  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
Barbara Streisandoriginal
2024-10-20 14:07:02940parcourir

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>

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>

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!

Déclaration:
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