Loading

浅谈document.write()及document.open()

Document.write() 方法将一个文本字符串写入一个由 document.open() 打开的文档流(document stream)。

注意: 因为 document.write 需要向文档流中写入内容,所以,若在一个已关闭(例如,已完成加载)的文档上调用 document.write,就会自动调用 document.open,这将清空该文档的内容,在document.open方法会有具体解释。

Document.open() 方法打开一个要写入的文档。

这将会有一些连带的影响。例如:

  • 此时已注册到文档、文档中的节点或文档的window的所有事件监听器会被清除。
  • 文档中的所有节点会被清除。

所谓的document.wirte()方法,会导致页面内容被覆盖,然后写入内容,便是因为,在页面加载完成后(会自动关闭文档——document.close()),调用document.write方法时,会导致需要重新打开该文档,即调用document.open(),而open()这个方法,会先把文档中的所有结点清除掉,这就是document.write()方法会导致页面内容被覆盖的原理。
若不是在页面加载完成后调用了docuemnt.wirte()方法,那么便不需要重新打开文档(docuement.open()),也就不会覆盖文档内容。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div>以前的文档节点</div>
	
</body>
</html>
  • 覆写
window.onload = function(){
      document.write("<div>现在内容</div>")
}

  • 不会覆写
document.write("<div>现在内容</div>")

posted @ 2020-08-22 16:03  姑苏天阳  阅读(648)  评论(0编辑  收藏  举报