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

发布于 2022-09-11 15:26:14 字数 490 浏览 9 评论 0

<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("花");

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

叫嚣ゝ 2022-09-18 15:26:15

因为在方法中调用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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文