Maison > interface Web > js tutoriel > Pourquoi diviser les balises `` à l'aide de `document.write()` ?

Pourquoi diviser les balises `` à l'aide de `document.write()` ?

DDD
Libérer: 2024-12-11 17:10:10
original
870 Les gens l'ont consulté

Why Split `` Tags Using `document.write()`?

Document.write() Fractionnement des balises de script : une justification

Dans le développement Web, il n'est pas rare de rencontrer des scripts écrits à l'aide de document.write () qui divise le <script> ou /script> balises. Cette pratique peut soulever la question : « Pourquoi utiliser une telle technique ? »</p> <p><strong>Raison du fractionnement :</strong></p> <p>La réponse réside dans la manière dont les analyseurs HTML gèrent les sections CDATA dans &lt ;script> éléments. Alors que SGML impose qu'un <script> Le bloc doit se terminer dès qu'il rencontre une séquence ouverte de balise de fin (par exemple, </), les navigateurs ne reconnaissent qu'un véritable </script> close-tag comme fin d'un bloc de script.

Importance du fractionnement :

Considérons l'exemple suivant :

<script type='text/javascript'>
  document.write('<scr' + 'ipt type="text/javascript" src="script.js"></sc' + 'ript>');
</script>
Copier après la connexion

Dans ce cas , si le <script> n'étaient pas divisés, la séquence de balises proches </sc serait interprétée comme la fin du <script> bloquer, mettant fin prématurément au script. Le fractionnement de la balise garantit que le navigateur analyse et exécute correctement l'intégralité du script.</p> <p><strong>XHTML et écriture de script :</strong></p> <p>Dans XHTML, il n'y a pas de gestion particulière pour les blocs de script. Des caractères tels que < et & doit être échappé dans les scripts. Cependant, l'utilisation de caractères sans échappement peut prêter à confusion dans les navigateurs analysant XHTML en tant que HTML.</p><p><strong>Écriture de script alternative :</strong></p><p>Pour répondre à la fois aux analyseurs XHTML et HTML, envisagez d'utiliser le approche suivante :</p><pre class="brush:php;toolbar:false"><script type="text/javascript"> document.write('\x3Cscript type="text/javascript" src="script.js"></script>');

En échappant les caractères en utilisant la notation hexadécimale, vous vous assurez que le script sera correctement interprété par tous les analyseurs.

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.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal