为了账号安全,请及时绑定邮箱和手机立即绑定

为什么用document.write()编写<script>标记?

为什么用document.write()编写<script>标记?

湖上湖 2019-06-03 16:27:10
为什么用document.write()编写<script>标记?为什么某些网站(或向客户提供javascript代码的广告商)使用一种将<script>和/或</script>标签在document.write()打电话?我注意到Amazon也是这样做的,例如:<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>
查看完整描述

4 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

在不需要任何形式的转义的情况下,我在想要生成内联脚本标记(因此它立即执行)时,使用了另一个变体:

<script>
    var script = document.createElement('script');
    script.src = '/path/to/script.js';
    document.write(script.outerHTML);</script>

(注:与网络上的大多数例子相反,我没有设置type="text/javascript"无论是在封闭标记上,还是在生成标记上:没有浏览器不将其作为默认标记,因此它是多余的,但如果您不同意,也不会造成伤害)。


查看完整回答
反对 回复 2019-06-03
?
郎朗坤

TA贡献1921条经验 获得超9个赞

我认为这是为了防止浏览器的HTML解析器将<script>,主要是</script>解释为实际脚本的结束标记,但是我认为使用document.write不是评估脚本块的好主意,为什么不使用DOM.

var newScript = document.createElement("script");...


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 1700 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信