为什么要使用document.write?

Jam*_*hes 18 javascript document.write

我想知道为什么广告仍然使用document.write方法将添加内容插入到页面中

<script language="javascript" type="text/javascript">
    document.write("<script type='text/javascript' src='http://addomain/someadd.js'><\/sc" + "ript>");
</script>
Run Code Online (Sandbox Code Playgroud)

为什么我不能放

<script type='text/javascript' src='http://addomain/someadd.js'></script>
Run Code Online (Sandbox Code Playgroud)

代替广告?

Chr*_*phe 8

传统的脚本标记将在加载和执行时阻止页面.使用document.write加载的脚本将异步工作.这就是您在广告或分析中看到这一点的原因,因为此类脚本不会直接影响页面内容.


Pau*_*ney 5

我与一家网络广告公司合作,从我所听到的,某些浏览器(不知道哪些浏览器)将允许您将脚本标签放入页面,但不允许您自动执行其内容.

因此,要实现此目的,您需要将脚本标记分解为多个部分,以便浏览器不会将其视为脚本标记,而是将其视为任何旧的HTML数据.然后,当连续处理DOM时,在写出脚本标记后,它评估的下一件事就是......嘿,你刚写完的那个脚本标签.

此时,将评估并执行脚本标记.


Mic*_*ews 5

通常,这些document.write注入的脚本具有附加到它们的动态字符串,以消除缓存,或者将有关客户端的一些信息发送到广告服务器.我怀疑你的例子是这样的

document.write("<script type='text/javascript' src='http://addomain/someadd.js?"+extrastuff+"'><\/sc" + "ript>");
Run Code Online (Sandbox Code Playgroud)

但随着时间的推移被调整,或被不了解extrastuff位的人复制和修改.但正如你所写的那样,没有区别:你引用问题的两种方式在功能上是相同的.