调用document.write()
时会发生什么不好的事情?
我听说document.write
对DOM有不利影响或使用Javascript库的点点滴滴。我在我面前有一个问题,我怀疑是相关的,但未能找到该方法造成的损害的简明摘要。
答案 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()
覆盖了它。