开发者社区> 问答> 正文

关于js中defer的使用遇到的问题?报错

关于defer的使用,大部分人对其的解释是它会延迟加载脚本,等到html文档执行完后再加载,有说其作用就是相当于把脚本位置置后,可是我的测试的时候发现有问题。

例 1:

<script defer>
callA();
function callA(){
	document.getElementById("check").innerHTML="abcd";
}
</script>
<p id="check">123</p>


这段代码的作用是想测试callA()部分的调用是否真的在文档加载后执行,但发现报错了,找不到innerHTML的引用对象:

这很明显与不使用defer,将脚本置后的结果不同:

例2:

<p id="check">123</p>
<script>
callA();
function callA(){
	document.getElementById("check").innerHTML="abcd";
}
</script>


有没有人可以解释下?谢谢!

展开
收起
爱吃鱼的程序员 2020-06-10 13:50:00 458 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你看的教程写错了,看这个http://www.w3schools.com/tags/att_script_defer.asp

    想defer有效果的话,必须要把代码写在js文件里,即是要src引入文件。

    我记得好像是要外部引用的js脚本才能用defer吧
    2020-06-10 13:50:17
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载