10

这是一个非常基本的问题。我有这个脚本:

    <script type="text/javascript">
        function write(){
            document.write('Hello2')
        }
        write();
    </script>

它显示了我的完整页面。并在页面末尾显示Hello2。但是,当我去开发者工具并调用write()时,它会替换我的整个正文 html。只是好奇想知道。

        window.onload=write;// has the same effect. Clear's my page.

谢谢。

4

3 回答 3

18

当浏览器正在读取和解析文档时,如果有一个script元素调用document.write, 的输出将document.write插入到该点的文档中。但是,稍后,一旦页面完全加载,如果您使用document.write,它会隐式执行 a document.open,这会清除页面并从头开始编写新页面。

更多关于 MDN:

通常,与其使用document.write向页面添加内容,不如使用各种DOM 方法(直接,或通过jQueryYUIClosure其他任何一种库)。

于 2012-12-06T10:30:21.413 回答
7

当它在页面完成加载执行时,它会覆盖整个内容——这是对这个问题的回答中提出的要点之一:为什么 document.write 被认为是“不好的做法”?

于 2012-12-06T10:30:24.877 回答
0

document.write 写入文档流,在关闭(加载)的文档上调用 document.write 会自动调用 document.open,这将清除文档。

于 2018-07-17T07:36:39.977 回答