基于javascript原生判斷DOM是否加載完畢
readyState
document.readyState 返回當(dāng)前文檔的狀態(tài),屬性如下:
- uninitialized 還未開始加載
- loading 加載中
- interactive 已加載,文檔與用戶可以開始交互
- complete 加載完成
DOMContentLoaded
當(dāng) DOMContentLoaded事件觸發(fā)時(shí),僅當(dāng)DOM加載完成,不包括樣式表,圖片,flash
onload
當(dāng) onload 事件觸發(fā)時(shí),頁面上所有的DOM,樣式表,腳本,圖片,flash都已經(jīng)加載完成了
根據(jù)執(zhí)行時(shí)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
兩個(gè)比較有用的Javascript工具函數(shù)代碼
下面我的base.js中的extend函數(shù)可以允許用json格式賦值屬性甚至是函數(shù)句柄2010-02-02
JavaScript實(shí)現(xiàn)班級抽簽小程序
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)班級抽簽小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
JS兼容瀏覽器的導(dǎo)出Excel(CSV)文件的方法
項(xiàng)目中經(jīng)常需要導(dǎo)出Excel文件,不在服務(wù)器端處理而是富客戶端采用Javascript腳本處理數(shù)據(jù)并導(dǎo)出文件2014-05-05
JS實(shí)現(xiàn)多物體運(yùn)動的方法詳解
這篇文章主要介紹了JS實(shí)現(xiàn)多物體運(yùn)動的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript實(shí)現(xiàn)多物體運(yùn)動的原理與相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Bootstrap實(shí)現(xiàn)模態(tài)框效果
這篇文章主要為大家詳細(xì)介紹了Bootstrap實(shí)現(xiàn)模態(tài)框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09

