考虑以下情况:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script src="js/heavy_js_file.js" defer></script>
<script src="js/heavy_js_file2.js" defer></script>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
});
</script>
</body>
</html>
下载并执行所有外部延迟脚本后,DOMContentLoaded
会激活吗?
P.S:MDN definition说解析html DOM后会发出DOMContentLoaded
。我不确定解析html dom是否意味着下载和执行js文件。
答案 0 :(得分:1)
是的,只要您的脚本不是异步,解析脚本后就会触发DOMContentLoaded。
编辑我不知道如何将问题标记为重复,但我很确定anwser已在此处:Defer attribute and onload event