有以下代码:
<html>
<head>
<script>
function elem_onload() {
console.log("elem_onload");
};
</script>
</head>
<body onload="elem_onload()">
<script type="text/javascript" src="script.js" defer></script>
</body>
</html>
script.js:
console.log("external script");
defer属性似乎不起作用。输出结果如下:
external script
elem_onload
无论是否使用 defer 属性,都应该是:
elem_onload
external script
defer属性是什么?
重复的答案?
我想声明我的回答不是重复的
How exactly does <script defer=“defer”> work?
所引用的推荐答案是关于内联脚本,浏览器行为对我来说是清楚的 - 它简单地忽略了defer
。我的问题是关于外部脚本,此时浏览器应该执行延迟的外部脚本
在文档解析后
正如文档所述,因此在onload
事件之后。
因此,我正在等待一个适当的答案...
elem_onload
结束时设置<script type=""></script>
的type
和src
。 - guest27131412.2.6 结束
:第3步。执行所有延迟脚本;第4步。触发DOMContentLoaded
事件;... 第7步:触发load
事件。 - Andreas