分割<script> document.write() 中的标签</script>
Document.write() 是一种将内容动态插入 HTML 文档的强大方法。但是,在编写 <script> 时使用 document.write() 标记时,有必要将标记拆分为多个部分。包括亚马逊在内的各种网站都采用了这种技术,以防止<脚本>过早终止。 </script>
分割的需要源于浏览器处理 的方式。标签。在 SGML 中,脚本块应该以任何结束标记开放序列 () 结束,其中包括 。标签。但是,浏览器仅在遇到实际的 时才结束解析。
因此,如果 不被分割,它将提前结束整个封闭的 <script></script> 。堵塞。为了防止这种情况,网站将 拆分为:
例如,Amazon 使用此技术动态包含 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>
在 XHTML 中,没有对脚本块的特殊处理,因此其中的所有字符都必须转义。但是,这可能会导致浏览器将 XHTML 解析为 HTML 时出现混乱。为了避免这种情况,最好使用十六进制字符引用来表示小于号和与号字符:
<script type="text/javascript"> document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>'); </script>
以上是为什么在使用`document.write()`时要分割``标签?的详细内容。更多信息请关注PHP中文网其他相关文章!