Fractionnement <script> Balises dans document.write()</strong></p> <p>Fractionnement <script> et </script> balises utilisant document.write() est une technique utilisée par certains sites Web pour ajouter dynamiquement des scripts à une page Web.
Pourquoi le fractionnement est-il nécessaire ?
En HTML, < script> les balises contiennent du code JavaScript. Lorsque le navigateur rencontre un message <script> tag, il interprète le code qu’il contient et l’exécute. Cependant, si le <script> La balise est divisée en deux parties et écrite avec document.write(), elle empêche la fin prématurée du bloc de script.</p> <p><strong>Comportement du navigateur avec CDATA</strong></p> <p>En HTML, < ;script> les balises utilisent une section CDATA (Character Data) pour leur contenu. Les blocs CDATA sont censés se terminer lorsqu'ils rencontrent un délimiteur ouvert de balise de fin, tel que <. Cependant, les navigateurs ne terminent généralement les blocs de script CDATA que sur un fichier </script> close-tag.
Exemple
Par exemple, le code suivant d'Amazon démontre la technique :
<script type='text/javascript'> if (typeof window['jQuery'] == 'undefined') document.write('<scr' + 'ipt type="text/javascript" src="http://z-ecx.images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.pack._V265113567_.js"></sc' + 'ript>'); </script>
Approches alternatives
En XHTML, les scripts doivent être échappés pour éviter toute confusion. Une meilleure approche consiste à utiliser une séquence de caractères hexadécimaux pour écrire l'élément de script, comme indiqué ci-dessous :
<script type="text/javascript"> document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>'); </script>
En suivant ces directives, les développeurs peuvent intégrer efficacement des scripts dynamiques dans leurs pages Web tout en conservant la compatibilité avec les différents navigateurs et Normes HTML.
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!