基于javascript原生判斷DOM是否加載完畢
readyState
document.readyState 返回當(dāng)前文檔的狀態(tài),屬性如下:
- uninitialized 還未開始加載
- loading 加載中
- interactive 已加載,文檔與用戶可以開始交互
- complete 加載完成
DOMContentLoaded
當(dāng) DOMContentLoaded事件觸發(fā)時,僅當(dāng)DOM加載完成,不包括樣式表,圖片,flash
onload
當(dāng) onload 事件觸發(fā)時,頁面上所有的DOM,樣式表,腳本,圖片,flash都已經(jīng)加載完成了
根據(jù)執(zhí)行時DOM是否已經(jīng)裝載完畢來決定是對回調(diào)函數(shù)進(jìn)行同步調(diào)用還是異步調(diào)用。具體代碼如下:
function onReady(fn){
var readyState = document.readyState;
if(readyState === 'interactive' || readyState === 'complete') {
fn()
}else{
window.addEventListener("DOMContentLoaded",fn);
}
}
onReady(function(){
console.log('DOM fully loaded and parsed ');
})
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在VS?Code中使用Snippet?Craft擴(kuò)展提高編碼效率的過程詳解
這篇文章主要介紹了在VS?Code中使用Snippet?Craft擴(kuò)展提高編碼效率,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
JS兼容瀏覽器的導(dǎo)出Excel(CSV)文件的方法
項目中經(jīng)常需要導(dǎo)出Excel文件,不在服務(wù)器端處理而是富客戶端采用Javascript腳本處理數(shù)據(jù)并導(dǎo)出文件2014-05-05

