我正在尝试理解async和deferHTML 5属性.这是我的测试代码:
<body>
<script type="text/javascript" src="script.js" **defer**></script>
<div id="div1">
Abc
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
的script.js:
document.write("Hello World!")
Run Code Online (Sandbox Code Playgroud)
据我了解,并根据定义,"延迟...指定脚本在页面完成解析时执行"输出不应该是:
Abc
Hello World!
Run Code Online (Sandbox Code Playgroud)
代替
Abc
Run Code Online (Sandbox Code Playgroud)
是这样的?
为什么document.write()不能推迟?
答案"document.write清除页面"没有考虑延迟属性.最终的答案是类似的,但我的问题是从另一个角度提出的.
拥有以下代码:
<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>
Run Code Online (Sandbox Code Playgroud)
的script.js:
console.log("external script");
Run Code Online (Sandbox Code Playgroud)
defer属性似乎不起作用.输出是:
external script
elem_onload
Run Code Online (Sandbox Code Playgroud)
是否有延迟属性.不是的
elem_onload
external script
Run Code Online (Sandbox Code Playgroud)
推迟定义?
我想说明我的答案不是重复的
<script defer ="defer">究竟是如何工作的?
引用的推荐答案是内联脚本,浏览器行为对我来说很明显 - 它只是忽略defer.我的问题是关于外部脚本,在这种情况下,浏览器应该执行外部延迟脚本
解析文档后
因为文件在onload事件之后就这样说了
所以我在等待一个合适的答案......
具有以下代码:
<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>
Run Code Online (Sandbox Code Playgroud)
script.js:
console.log("external script");
Run Code Online (Sandbox Code Playgroud)
defer属性似乎不起作用。输出为:
external script
elem_onload
Run Code Online (Sandbox Code Playgroud)
是否具有defer属性。不应该
elem_onload
external script
Run Code Online (Sandbox Code Playgroud)
与延期定义?
我想说我的答案不是重复的
<script defer =“ defer”>是如何工作的?
推荐的参考答案是关于内联脚本的,在该脚本中浏览器的行为对我来说很清楚-它只是忽略defer。我的问题是关于外部脚本,在这种情况下,浏览器应执行外部延迟脚本
文件解析后
作为文档说明onload事件发生后。
所以我正在等待一个适当的答案...