菜鸟教程的JavaScript教程中有这样的一段描述:
您只能在 HTML 输出中使用 document.write。如果您在文档加载后使用该方法,会覆盖整个文档。
查了下网上的资料,这句话的解释为:
绝对不要在文档(DOM)加载完成之后使用 document.write()。这会覆盖该文档。
意思是说:不要在文档(DOM)加载完成之后使用 document.write()
的含义并不是在文本后使用script标签进行文档内容写入,而是通过按钮响应等方式在全部页面加载完毕之后进行文本写入
例如:
<!--
需满足两个条件:
1、在函数内部调用document.write();
2、通过按钮响应调用函数
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档(DOM)加载完成之后使用document.write()覆盖文档</title>
</head>
<body>
<script>
document.write("首先输出:");
document.write(Date());
</script>
<p>点击按钮</p>
<br/>
<input type="button" onclick="myFunction()" value="调用函数覆盖"/>
<script>
function myFunction(){
document.write("覆盖之前的输出:");
//document.write(Date());
}
</script>
</body>
</html>