猿问

关于script的defer属性问题

一直想不明白script的defer这个属性,看了视频和文档都说只有IE浏览器兼容这个defer属性,其他浏览器都不兼容。我在head里面引入两个js文件,如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script defer="defer" type="text/javascript" src="js/defer.js"></script>

<script async="async" type="text/javascript" src="js/async.js"></script>

</head>

<body>

<p>script只有IE浏览器支持defer属性,而async主流浏览器都支持</p>

<p>我是html里的文字</p>

</body>

</html>

defer.js就是alert("defer");

async.js就是alert("async");


经测试,在360浏览器和谷歌浏览器,都是先弹出了defer,再弹出async;但是在IE浏览器是先弹出了async,再弹出defer,我想这应该就是验证了defer只兼容IE的说法。于是问题来了,为什么有时候在head里面引用了某些js文件,会报错(因为是先执行了js,没有加载到html文件),但是这时候在script标签加了defer=“defer”就没报错了(非IE浏览器下),不是说defer只兼容IE吗?真的想不明白啊
究竟defer这个属性是只兼容IE吗?但是我有看到有些文章说目前IE已经兼容了其他主流浏览器,那又怎么解释我上面的alert测试例子呢?

qq_云水边静沐暖阳_04205942
浏览 1395回答 0
0回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答