Maison > interface Web > js tutoriel > Pourquoi diviser la balise `` lors de l'utilisation de `document.write()` ?

Pourquoi diviser la balise `` lors de l'utilisation de `document.write()` ?

Patricia Arquette
Libérer: 2024-12-14 08:02:11
original
776 Les gens l'ont consulté

Why Split the `` Tag When Using `document.write()`?

Diviser le <script> Balise dans document.write()</strong></p> <p>Document.write() est une méthode puissante pour insérer dynamiquement du contenu dans un document HTML. Cependant, lors de l'écriture d'un <script> balise à l’aide de document.write(), il devient nécessaire de diviser la balise en plusieurs parties. Cette technique est utilisée par divers sites Web, notamment Amazon, pour empêcher la résiliation prématurée du <script> block.</p> <p>Le besoin de fractionnement découle de la façon dont les navigateurs gèrent le </script> étiqueter. En SGML, un bloc de script est censé se terminer sur n'importe quelle séquence ouverte de balise de fin ( étiqueter. Cependant, les navigateurs ne terminent l'analyse que lorsqu'ils rencontrent un message close-tag.

Par conséquent, si le n'est pas divisé, cela mettra fin prématurément à l'ensemble du fichier <script></script> bloc. Pour éviter cela, les sites Web divisent le balise autour du < et /, en préservant la séquence d'ouverture de la balise de fin requise sans mettre fin prématurément au bloc.

Par exemple, Amazon utilise cette technique pour inclure dynamiquement jQuery :

<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></p>
<p>Dans XHTML, il n'y a pas gestion spéciale pour les blocs de script, donc tous les caractères qu'ils contiennent doivent être échappés. Cependant, cela peut prêter à confusion pour les navigateurs analysant XHTML en HTML. Pour éviter cela, il est préférable d'utiliser des références de caractères hexadécimaux pour représenter les caractères inférieur à et esperluette :</p>
<pre class="brush:php;toolbar:false"><script type="text/javascript">
    document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>');
</script>
Copier après la connexion

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