我會(window.load事件真正地表現得像延遲)建議是這樣的:
$(window).load(function() {
var script = document.createElement("script");
script.type = "text/javascript";
if (script.readyState) { // IE
script.onreadystatechange = function() {
if (script.readyState === "loaded" || script.readyState === "complete") {
script.onreadystatechange = null;
// do something
}
};
}
else { // Others
script.onload = function() {
// do something (the same thing as above)
};
}
script.src = file;
document.getElementsByTagName("head")[0].appendChild(script);
});
如果你需要一個以上的文件,放在一個循環,並設置文件類似的文件[X ]
有趣。我從來沒有聽說過它只適用於Fx,au contraire。 PPK建議'defer'在IE4 +和舊版瀏覽器中的工作方式不同,但並未提及它在其他瀏覽器中無法使用。他的文章可能有點老,雖然... http://www.quirksmode.org/js/placejs.html – Nix 2012-02-07 12:06:39
有很多很好的資源鏈接在這個SO問題:http://stackoverflow.com/questions/5250412/how-exactly-does-script-defer-defer-work – Nix 2012-02-07 12:41:56
爲什麼你首先需要'defer'?你將所有的文件放在頁面的底部,你應該總是通過'$(function(){/ * ... your code .. * /})來使用jQuery;',所以沒有問題.. – apfelbox 2012-03-05 17:41:57