一直想不明白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");經(jīng)測試,在360瀏覽器和谷歌瀏覽器,都是先彈出了defer,再彈出async;但是在IE瀏覽器是先彈出了async,再彈出defer,我想這應該就是驗證了defer只兼容IE的說法。于是問題來了,為什么有時候在head里面引用了某些js文件,會報錯(因為是先執(zhí)行了js,沒有加載到html文件),但是這時候在script標簽加了defer=“defer”就沒報錯了(非IE瀏覽器下),不是說defer只兼容IE嗎?真的想不明白啊究竟defer這個屬性是只兼容IE嗎?但是我有看到有些文章說目前IE已經(jīng)兼容了其他主流瀏覽器,那又怎么解釋我上面的alert測試例子呢?
關于script的defer屬性問題
qq_云水邊靜沐暖陽_04205942
2018-08-04 13:33:20