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版)