为什么document.write被认为是“不好的做法”?

我知道document.write被认为是不好的做法; 我希望编写一份列表,向第三方供应商提交他们为什么不应该在分析代码的实现中使用document.write原因。

请将您声明document.write的理由列为下面的错误操作。


几个更严重的问题:

  • document.write(以后称为DW)在XHTML中不起作用

  • DW不直接修改DOM,阻止进一步操作(试图找到证据,但最好是情景)

  • 在页面完成加载后执行的DW将覆盖页面,或者写入新页面,或者不起作用

  • DW在遇到的地方执行:它不能在给定节点点注入

  • DW有效地编写序列化文本,这不是DOM在概念上工作的方式,而且是创建错误的简单方法(.innerHTML具有相同的问题)

  • 最好使用安全和DOM友好的DOM操作方法


    document.write实际上没有错,本身。 问题是滥用它真的很容易。 大体上,甚至。

    就提供分析代码的供应商而言(例如谷歌分析)而言,它实际上是他们分发此类代码片段的最简单方式

  • 它保持脚本小
  • 他们不必担心覆盖已经建立的onload事件或包含必要的抽象以安全地添加onload事件
  • 它非常兼容
  • 只要在文档加载完成后不尝试使用它,我认为document.write本身并不是邪恶的。


    document.write另一个合法用途来自HTML5 Boilerplate index.html示例。

    <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.3.min.js"></script>')</script>
    

    我也看到了使用json2.js JSON解析/字符串化填充(IE7及以下版本需要)的相同技巧。

    <script>window.JSON || document.write('<script src="json2.js"></script>')</script>
    
    链接地址: http://www.djcxy.com/p/8393.html

    上一篇: Why is document.write considered a "bad practice"?

    下一篇: Using Google Analytics without Javascript?