domcontentloaded在html解析完成、dom树构建完毕后立即触发,此时可安全操作dom元素(如queryselector、事件绑定),但不等待图片、css等外部资源加载。

DOMContentLoaded 什么时候能安全操作 DOM 元素
只要 document 的 HTML 解析完成、DOM 树构建完毕,DOMContentLoaded 就会触发——此时 document.body、document.getElementById()、querySelector() 全部可用,事件绑定也完全可靠。
但要注意:它不等外部资源,所以这些情况会出错:
-
document.getElementById("myImg").naturalWidth返回0—— 图片还没加载完 -
getComputedStyle(el).backgroundImage可能是空字符串 —— CSS 文件还在下载或未解析完 CSSOM - 用
el.getBoundingClientRect()获取依赖图片尺寸的布局位置,结果不准
推荐写法只有两种:
- 用
document.addEventListener("DOMContentLoaded", handler)—— 支持多次注册,行为稳定 - 把
<script></script>放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











