document.write()和innerHTML的联系与区别

1、联系

document.write()和innerHTML都能够动态地向文档中添加标记。
用法如下:
例①document.write()(不推荐)

<body>
      <script>
            document.write("<p>This is inserted.</p>");
      </script>
</body>

例②innerHTML

    window.onload=function(){
        var oBody=document.getElementsByTagName("body");
        oBody[0].innerHTML="<p>This is inserted.</p>";
    };
2、区别:

①document.write()必须使用script标签才能被调用。违背了“行为与表现分离的原则”,即无法实现JavaScript和HTML的分离。
②document.write()容易导致验证错误。比如在例①中,<script>标签后面很容易认为是<p>标签,而在<script>标签后面打开<p>标签是非法的。事实上,那个“<p>”和“</p>”只不过是一个将被插入文档的字符串的组成部分而已。
③document.write与MIME类型application/xhtml+xml不兼容,浏览器在呈现这种XHTML文档时根本不会执行document.write()方法。
④document.write()仅支持写入
⑤innerHTML可以实现JavaScript和HTML的分离。
⑥innerHTML既支持读取,又支持写入。

综上所述:推荐使用innerHTML,不推荐使用document.write().

参考文献:
JavaScript DOM 编程艺术(第2版)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 很早之前就在看web前端面试题,一直想总结一个比较全面又详细的面试题库,现在总结了一些,分享给大家,以后还会持续更...
    樱桃小丸子儿阅读 85,817评论 32 691
  • 【转载】CSDN - 张林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牍阅读 3,510评论 1 14
  • 终究不能让人知道我在写作,写作对于我来说是一种心情,是一种内心想法表达,也是一种发泄。 不该让熟悉的人来认识的我文...
    erduo33阅读 275评论 0 0
  • 我畏惧生活,害怕长大,突然闲下来的时候整个人都空了,有说不出来的失落感,好像很久都没有到人多的地方去了,好像很久没...
    小小小小妮阅读 127评论 0 0