document.write()造成了什么损害?

时间:2010-04-01 08:52:23

标签: javascript dom

调用document.write()时会发生什么不好的事情?

我听说document.write对DOM有不利影响或使用Javascript库的点点滴滴。我在我面前有一个问题,我怀疑是相关的,但未能找到该方法造成的损害的简明摘要。

3 个答案:

答案 0 :(得分:13)

使用document.write()将破坏网页 - 销毁并覆盖整个DOM - 如果在文档解析完毕后调用它。这被认为是对document.write()的不良使用,并且是批评许多旧脚本的原因。

window.onload = function ()
{
    document.write("Oops!");
}

一般情况下,在分析时可以接受并广泛使用,以同步方式动态地向页面添加内容:

<div>
  <script type="text/javascript">
  document.write("Well I'll be, your browser supports JavaScript!");
  </script>
</div>

广告发布服务主要用于将广告添加到网页,有些Google API也会使用它。

答案 1 :(得分:7)

页面屏蔽,这就足够了,或者说它被错误地使用了。

当您执行document.write时,正如Andy所说,它是同步意味着您必须等待它才能继续页面的其余部分。

我不希望您的网站因为广告服务器停机而挂断。不幸的是,这是SO的情况,右边的AD使用document.write使用来自另一个服务器的脚本,如果向下,则阻止页面加载直到超时。由于document.write和缓慢(通常是第三方)广告服务器的延迟,常常导致网站加载速度缓慢。

旁边的咆哮:广告从景观中获取金钱,好的,你需要谋生。但是从技术角度来看,不要依赖,因为在他们的服务器关闭,你的网站是FUBAR ...以非阻塞的方式做广告,除了{{{{{{{ 1}}实现这一点。

答案 2 :(得分:2)

我只想添加一个fiddle来展示Andy E的实际例子。

基本上,段落元素将不再可见,因为document.write()覆盖了它。