关于什么时候DOMReady
来源:6-1 document
王文辉
2020-03-16 20:04:56
如题,什么时候是DOMReady,我的理解是html从解析到</body>,而不用解析到</html>。
为了提升效率会先让DOM先解析渲染(这个时候DOMReady),然后再加载JS,所以把JS放再</body>之后。
但是测试了以下代码之后发现document.write()方法并没有覆盖P标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Document.write</title>
</head>
<body>
<p>写在HTML中的P标签</p>
</body>
<script>
document.write('写在body之后');
</script>
</html>
所以到底什么时候是DOMReady呢?
1回答
同学你好,HTML标签通过浏览器解析变成DOM节点,当页面上所有HTML都转换为节点,DOM树构建完, 简称之domReady。
这里还涉及到文档流的知识,这样写原内容不会被覆盖是因为原文档流并没有被关闭,所以不会覆盖。
如果外面添加上onload事件,就会覆盖


window.onload事件是在文档内容加载完毕后再去执行事件处理函数,此时执行document.write()函数会自动调用document.open()函数创建一个新的文档流,所以此时原来的内容会被覆盖。
这里可以不用深入研究,知道怎么使用能够正常获取元素,输出内容就好。
祝学习愉快!
相似问题