Maison >interface Web >js tutoriel >Pourquoi diviser la balise `` dans les appels `document.write()` ?
Introduction :
La pratique consistant à diviser les balises HTML en plusieurs parties dans document.write() a dérouté de nombreux développeurs . En particulier, le fractionnement du <script> tag a soulevé des questions quant à son objectif. Cet article explore les raisons derrière cette technique, mettant en lumière les défis et les considérations impliqués.</script>
Les défis avec Placement des balises :
La principale raison de la séparation de tags est dû à un comportement intéressant dans SGML, le langage de balisage qui sous-tend HTML. Selon SGML, les blocs de script se terminent par n'importe quelle séquence "end-tag open" (ETAGO), y compris Cependant, cette règle pose un problème au sein d'un appel document.write().
Si le n'étaient pas divisés, cela mettrait fin prématurément au <script></script> bloc. Pour éviter cela, les développeurs doivent diviser la balise et placer le entre le
Compatibilité des navigateurs et considérations XHTML :
Diviser le La balise résout également les problèmes de compatibilité du navigateur. Alors que les navigateurs analysent généralement le HTML comme CDATA, traitant tout comme un délimiteur ouvert de balise de fin, ils ne terminent les blocs de script que sur un tag.
En XHTML, où les blocs de script ne sont pas traités spécialement, tous les blocs de script La balise garantit la compatibilité avec les deux types d'analyseurs.
Approches alternatives :
Lors du fractionnement Les balises dans document.write() sont une pratique courante, ce n'est pas la seule option. Une solution plus élégante consiste à encoder l'intégralité du <script> balise en utilisant des caractères spéciaux, tels que :</script>
document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>');
Cette méthode fonctionne à la fois sur les analyseurs HTML et XHTML et évite d'avoir à diviser les balises.
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!