Maison >interface Web >js tutoriel >Comment inclure dynamiquement des scripts externes avec des URL variables contenant des commandes « document.write » ?

Comment inclure dynamiquement des scripts externes avec des URL variables contenant des commandes « document.write » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 20:50:02624parcourir

How to Dynamically Include External Scripts with Variable URLs that Contain `document.write` Commands?

Inclure dynamiquement des scripts externes avec des URL variables

Lors de l'ajout dynamique de balises de script à une page Web, il est essentiel de prendre en compte les scripts avec des attributs src qui peuvent inclure les commandes document.write. Cela peut perturber le comportement de chargement normal.

Le problème

Dans des scénarios ordinaires, l'utilisation du code suivant pour inclure un script de "source.js" fonctionne bien :

<script type="text/javascript" src="source.js"></script>

Cependant, "source.js" peut contenir le contenu inhabituel suivant :

document.write('<script type="text/javascript">')
document.write('alert("hello world")')
document.write('</script>')
document.write('<p>goodbye world</p>')

La solution

L'utilisation de la méthode ordinaire ne gère pas correctement ce scénario. Au lieu de cela, vous pouvez utiliser la technique suivante pour ajouter dynamiquement des scripts avec la variable srcs :

var my_awesome_script = document.createElement('script');

my_awesome_script.setAttribute('src','http://example.com/site.js');

document.head.appendChild(my_awesome_script);

Cette méthode crée un nouvel élément de script, définit son attribut src et l'ajoute au du document. Cela fonctionne même si le src du script inclut les commandes document.write.

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