[英]DOMContentLoaded event does not fire
我想嘗試IE的javascript的DOMContentLoaded事件。 但是該事件不會觸發。 IE不支持此功能嗎? 請對此提供幫助。 谷歌搜索后,我沒有找到太多幫助。 我想嘗試使用javascript而不是jquery。 請對此提供幫助。
IE9及更高版本和所有其他現代瀏覽器均支持DOMContentLoaded
。
對於使用onreadystatechange
的IE早期版本,有一些變通辦法。 您可以在此處看到完整的跨瀏覽器,簡單的javascript內容加載檢測功能: 純JavaScript等效於jQuery的$ .ready()如何在頁面/ dom准備就緒時調用函數 ,您可以按原樣使用,也可以可以從代碼中借用概念。
基本思想是,在現代瀏覽器中使用DOMContentLoaded
,在較舊版本的IE中,您使用onreadystatechange
並回退到window onload
。 首先觸發的是文檔可以安全查詢和修改的最早時刻。
上面鏈接的代碼的症結在於這種邏輯:
// otherwise if we don't have event handlers installed, install them
if (document.addEventListener) {
// first choice is DOMContentLoaded event
document.addEventListener("DOMContentLoaded", ready, false);
// backup is window load event
window.addEventListener("load", ready, false);
} else {
// must be IE
document.attachEvent("onreadystatechange", readyStateChange);
window.attachEvent("onload", ready);
}
文檔准備就緒后,也有可能要注冊該事件。 如果是這樣,您的事件處理程序將永遠不會被調用,因為該事件已經發生。 您可以在安裝事件處理程序之前檢查文檔狀態,以查看它是否已經准備就緒,如下所示:
if (document.readyState === "complete") {
同樣,這里顯示了完整的邏輯: 純JavaScript等效於jQuery的$ .ready()如何在頁面/ dom准備就緒時調用函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.