为什么 document.write() 会清空页面内容?

<body>
<input type="button" value="按钮" onclick="sayHello();">
<script>
    function sayHello(){
        document.write("<h1>Hello</h1>");
    }
</script>
</body>

为什么document.write()会清空页面内容?

document.write("我");
document.write("是");
document.write("一");
document.write("朵");
document.write("花");

为什么这一段代码,后一句没有清空前一句显示的内容,而是输出了"我是一朵花"完整的一句话?

阅读 3.1k
1 个回答

因为在方法中调用document.write首先隐式调用document.openopen则会重新打开document对象流,开始(覆盖)写入,所以在方法内调用write就会导致document的内容被覆写。

如果你的代码像这样,那么h1和按钮会同时存在,因为write方法在渲染时被执行了,因为document流此时处于打开状态,所以新的内容会附加到流中。但是点击按钮后所有内容都会消失。

<input type="button" value="按钮" onclick="sayHello();">
<script>
  document.write("<h1>Hello</h1>");
    function sayHello(){
      document.open();
      document.close();
    }
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题