Pourquoi certains sites (ou annonceurs qui fournissent du code javascript aux clients) utilisent une technique de fractionnement des balises <script>
et / ou des </script>
balises dans les document.write()
appels?
J'ai remarqué qu'Amazon le fait également, par exemple:
<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>
\/
est une séquence d'échappement valide pour/
, alors pourquoi ne pas simplement l'utiliser à la place de ces échappements littéraux de chaîne pour<
? Par exempledocument.write('<script src=foo.js><\/script>');
. En outre, ce</script>
n'est pas la seule séquence de caractères qui peut fermer un<script>
élément. Plus d'infos ici: mathiasbynens.be/notes/etago