」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在不依賴框架的情況下確定 DOM 準備?

如何在不依賴框架的情況下確定 DOM 準備?

發佈於2024-11-09
瀏覽:616

How Can I Determine DOM Readiness Without Relying on Frameworks?

Document.isReady:DOM 就緒偵測的本機解決方案

依賴Prototype 和jQuery 等框架來管理window.onload 事件可能不會總是令人嚮往。本文探討了確定DOM 就緒情況的替代方法,特別是透過使用document.isReady.

查詢Document.isReady

對於具有穩定事件API 的現代瀏覽器, DOMContentLoaded 事件提供了處理DOM 就緒事件的強大方法。像下面這樣的實作提供了一個簡單而有效的解決方案:

function fireOnReady() { /* ... */ }
if (document.readyState === 'complete') {
    fireOnReady();
} else {
    document.addEventListener("DOMContentLoaded", fireOnReady);
}

jQuery 的 $.isReady 屬性

jQuery 提供了一個未記錄的屬性 $.isReady,它在內部反映了 DOM 就緒狀態。利用此屬性可以進行簡潔的檢查:

if($.isReady) {
    // DOM is ready
} else {
    // DOM is not yet ready
}

值得注意的是,該屬性仍未記錄在案,並且無法保證其在未來 jQuery 版本中的可用性。請謹慎使用,並為升級時可能發生的變化做好準備。

自訂 DOM 就緒片段

為了更廣泛的瀏覽器相容性,可以使用自訂 DOM 就緒片段。受到 Dustin Diaz 方法的啟發,它使用正規表示式檢查 document.readyState:

if( !/in/.test(document.readyState) ) {
    // document is ready
} else {
    // document is NOT ready
}

此方法依賴「in」子字串存在於「正在載入」和「互動」就緒狀態但不存在於「完成」狀態的事實。

版本聲明 本文轉載於:1729390935如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3