【发布时间】:2016-01-12 16:11:51
【问题描述】:
代码如下:
<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
定义了延迟?
重复的答案!?
我想声明我的答案与
不重复How exactly does <script defer=“defer”> work?
引用的推荐答案是关于内联脚本,其中浏览器行为对我来说很清楚 - 它只是忽略了defer。我的问题是关于外部脚本,在这种情况下浏览器应该执行外部延迟脚本
文档被解析后
正如文档所述,因此在 onload 事件之后。
所以我正在等待适当的答案...
【问题讨论】:
-
之前没用过 defer,但是不应该给属性赋值,例如
defer="true"? -
你说得对,这似乎违反直觉,但你没有说你使用的是什么浏览器,你在不同的浏览器中是否有相同的行为,也没有任何内容是可缓存的。
标签: javascript