我繼承了這段代碼,它看起來不是最理想的,並且可能不正確,因爲它在窗口和文檔對象上都添加了事件偵聽器。但是,除黑莓5.0之外,它正常運行。有人可以解釋一切是否設置正確,或者是否有任何建議使其更好和/或更簡化?跨瀏覽器Dom準備好了
if (document.readyState === "complete")
callback();
else if (document.addEventListener)
{
document.addEventListener("DOMContentLoaded",callback,false);
window.addEventListener("load",callback,false);
}
else if(window.attachEvent)
{
document.attachEvent("onreadystatechange", callback);
window.attachEvent("onLoad",callback);
} else
setTimeout(callback,2000);
把所有的JS放在文檔的末尾。這幾乎是一樣的。 – Saxoier
如果您有異步加載腳本,則不需要。 – VinnyD
如果您使用異步。腳本比你不應該使用DOMContentLoaded或我建議的方式,因爲執行這個異步。腳本可能在事件觸發或HTML解析器到達html文件的底部之後發生。因此只能使用'window.onload'和'xhr.onreadystatechange' - 兩者都是跨瀏覽器兼容的。 – Saxoier