这是一个非常基本的问题。 我有这个脚本:
<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.
感谢。
答案 0 :(得分:16)
当浏览器读取并解析文档时,如果有一个script
元素调用document.write
,那么document.write
的输出将被插入到文档中。但是,稍后,一旦页面完全加载,如果您使用document.write
,它会隐式执行document.open
,它会擦除页面并开始从头开始编写新页面。
有关MDN的更多信息:
通常,不是使用document.write
向页面添加内容,而是使用各种DOM methods(直接或通过jQuery,YUI等库, Closure或any of several others)。
答案 1 :(得分:7)
在页面加载完成后执行时,它会覆盖整个内容 - 这个问题的答案中提出的一点:Why is document.write considered a "bad practice"?
答案 2 :(得分:0)
document.write写入文档流,在关闭(加载)的文档上调用document.write会自动调用document.open,这将清除文档。