js 判斷腳本加載完畢的代碼
更新時間:2011年07月13日 16:37:46 作者:
記錄一段代碼,用來判斷腳本是否加載完畢。
復(fù)制代碼 代碼如下:
if(this.isIE) {
js.onreadystatechange=function(){if(js.readyState=="loaded" || js.readyState=="complete") callback();}
}else{js.onload=function(){callback();}}
js.onerror=function(){alert('Not Found (404): '+src)}//chrome
JS判斷腳本是否加載完成
在“按需加載”的需求中,我們經(jīng)常會判斷當(dāng)腳本加載完成時,返回一個回調(diào)函數(shù),那如何去判斷腳本的加載完成呢?
我們可以對加載的 JS 對象使用 onload 來判斷(js.onload),此方法 Firefox2、Firefox3、Safari3.1+、Opera9.6+ 瀏覽器都能很好的支持,但 IE6、IE7 卻不支持。曲線救國 —— IE6、IE7 我們可以使用 js.onreadystatechange 來跟蹤每個狀態(tài)變化的情況(一般為 loading 、loaded、interactive、complete),當(dāng)返回狀態(tài)為 loaded 或 complete 時,則表示加載完成,返回回調(diào)函數(shù)。
對于 readyState 狀態(tài)需要一個補充說明:
在 interactive 狀態(tài)下,用戶可以參與互動。
Opera 其實也支持 js.onreadystatechange,但他的狀態(tài)和 IE 的有很大差別。
具體實現(xiàn)代碼如下:
復(fù)制代碼 代碼如下:
function include_js(file) {
var _doc = document.getElementsByTagName('head')[0];
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', file);
_doc.appendChild(js);
if (!/*@cc_on!@*/0) { //if not IE
//Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload
js.onload = function () {
alert('Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload');
}
} else {
//IE6、IE7 support js.onreadystatechange
js.onreadystatechange = function () {
if (js.readyState == 'loaded' || js.readyState == 'complete') {
alert('IE6、IE7 support js.onreadystatechange');
}
}
}
return false;
}
//execution function
include_js('http://www.dhdzp.com/jslib//jquery/jquery.js');
相關(guān)文章
Javascript表單特效之十大常用原理性樣例代碼大總結(jié)
開頭說這個常用原理性樣例,大家可能不太清楚,這篇文章主要是針對實際開發(fā)中常用的一些代碼分析,主要是針對表單處理方法的一些資料,推薦大家收藏2016-07-07
實現(xiàn)圖片預(yù)加載的三大方法及優(yōu)缺點分析
本文介紹了實現(xiàn)圖片預(yù)加載的三大方法(CSS/JAVASCRIPT/AJAX)以及這三種方法的優(yōu)缺點分析,是篇非常值得推薦的文章,小伙伴們可要仔細(xì)研究下。2014-11-11
微信小程序開發(fā)之map地圖組件定位并手動修改位置偏差
這篇文章主要介紹了微信小程序開發(fā)之map地圖組件,定位,并手動修改位置偏差,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
js開發(fā)一個類似ChatGPT的AI應(yīng)用助手
一位創(chuàng)業(yè)朋友想做一個垂直領(lǐng)域的AI助手,經(jīng)過一個月的開發(fā)迭代,我們成功上線了第一個版本,這篇文章分享了開發(fā)一個類似ChatGPT的應(yīng)用的過程,包括技術(shù)選型、架構(gòu)設(shè)計和實戰(zhàn)經(jīng)驗,實現(xiàn)了流式響應(yīng)、上下文記憶系統(tǒng)和優(yōu)化提示詞,應(yīng)用得到了用戶的高度評價2024-12-12
JavaScript數(shù)組reduce()方法的語法與實例解析
js函數(shù)中有三個在特定場合很好用的函數(shù):reduce(),map(),filter(),這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組reduce()方法的相關(guān)資料,需要的朋友可以參考下2021-07-07
bootstrap table合并行數(shù)據(jù)并居中對齊效果
這篇文章主要為大家詳細(xì)介紹了bootstrap table合并行數(shù)據(jù)并居中對齊效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10

