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」子字串存在於「正在載入」和「互動」就緒狀態但不存在於「完成」狀態的事實。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3