Maison > interface Web > js tutoriel > Pourquoi certains sites Web divisent-ils les balises `` et `` avec `document.write()` ?

Pourquoi certains sites Web divisent-ils les balises `` et `` avec `document.write()` ?

Patricia Arquette
Libérer: 2024-12-12 12:53:12
original
625 Les gens l'ont consulté

Why Do Some Websites Split `` and `` Tags with `document.write()`?

Document.write() et fractionnement des balises de script : pourquoi c'est fait

Lors de l'utilisation de la méthode document.write() pour créer un script , vous remarquerez peut-être que certains sites Web séparent la balise <script> et </script> balises sur plusieurs appels. Cette technique est utilisée pour une raison spécifique : éviter l'arrêt prématuré du bloc de script.

Les navigateurs analysent généralement le HTML à l'aide des règles SGML. Selon SGML, les blocs de script doivent se terminer sur n'importe quelle séquence d'ouverture de balise de fin (ETAGO), telle que <[/). Cependant, dans la pratique, les navigateurs ne terminent l'analyse d'un bloc de script CDATA que sur une page close tag.

Par conséquent, y compris le <script> et </script> balises dans un seul appel document.write() entraînerait la fin prématurée du bloc de script par le navigateur lorsqu'il rencontre la séquence

Pour éviter ce problème, diviser les balises garantit que le Le navigateur interprète et exécute correctement le script. La répartition peut être comprise entre < et /, permettant au bloc de script de se terminer correctement uniquement lorsque le séquence est écrite.

Une meilleure alternative à l’utilisation de cette technique de fractionnement est d’échapper à tout < ou & dans le script et créez l'élément de script comme suit :

document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>');

Cette approche fonctionne à la fois pour les documents HTML5 et XHTML, garantissant la compatibilité croisée et évitant toute confusion dans les navigateurs.

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
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