今天学习了javascript第一部分,关于使用document.write()写入HTML文档流。但在教程上看到一行提示:您只能在 HTML 输出中使用 document.write。如果您在文档加载后使用该方法,会覆盖整个文档。这使我有些困惑,然后查了网上的各种说法,最后大概的总结一下。
所谓的HTML文档加载,其实HTML文档是自上而下的加载HTML表示的内容,当整个页面内容都加载完毕之后,再调用document.write()这方法会将显示的页面内容都会清楚。
当时我困惑的地方是,在文档加载完毕之后如何再使用这方法?在我之前所以为的是这样的代码
01.
<
html
>
02.
<
head
>
03.
</
head
>
04.
<
body
>
05.
<
p
>文档第一行</
p
>
06.
<
p
>文档第二行</
p
>
07.
<
script
type
=
"text/javascript"
>
08.
//这是我原本所认为的文档之后添加了js
09.
document.write('会不会将前两行文字清除呢?');
10.
</
script
>
11.
</
body
>
12.
</
html
>
以为所谓的在文档加载完后再调用该方法是这js语句在文档的最后,结果用上面的这样的写法其实不会清除,因为我想的是错误的。
后来了解之后,所谓的在文档加载完后再使用这方法是这样的:
01.
<
html
>
02.
<
body
>
03.
<
p
>这是第一行文字</
p
>
04.
<
p
>这是第二行文字<
p
>
05.
<
p
type
=
"text/javascript"
>
06.
function myFunction(){
07.
document.write('这下应该会清除了吧?');
08.
}
09.
</
script
>
10.
</
body
>
11.
</
html
>
文档加载完的情况是显示第一到第三行字。然后所谓的再使用document.write()这方法,是通过点击第三行文字调用myFunction方法使用的,因此这是在文档加载完后使用document.write()的,所以整个页面的内容都要被清除覆盖掉。