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

为什么用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>


湖上湖
浏览 1701回答 4
4回答

慕婉清6462132

在不需要任何形式的转义的情况下,我在想要生成内联脚本标记(因此它立即执行)时,使用了另一个变体:<script> &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;script&nbsp;=&nbsp;document.createElement('script'); &nbsp;&nbsp;&nbsp;&nbsp;script.src&nbsp;=&nbsp;'/path/to/script.js'; &nbsp;&nbsp;&nbsp;&nbsp;document.write(script.outerHTML);</script>(注:与网络上的大多数例子相反,我没有设置type="text/javascript"无论是在封闭标记上,还是在生成标记上:没有浏览器不将其作为默认标记,因此它是多余的,但如果您不同意,也不会造成伤害)。

郎朗坤

我认为这是为了防止浏览器的HTML解析器将<script>,主要是</script>解释为实际脚本的结束标记,但是我认为使用document.write不是评估脚本块的好主意,为什么不使用DOM.var&nbsp;newScript&nbsp;=&nbsp;document.createElement("script");...
打开App,查看更多内容
随时随地看视频慕课网APP