首页 > web前端 > js教程 > 为什么在使用`document.write()`时要分割``标签?

为什么在使用`document.write()`时要分割``标签?

Patricia Arquette
发布: 2024-12-14 08:02:11
原创
771 人浏览过

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

分割<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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板