JavaScript動態(tài)插入script的基本思路及實現(xiàn)函數(shù)
更新時間:2013年11月11日 17:33:21 作者:
偶爾需要動態(tài)插入javascript代碼的需求,基本思路是動態(tài)創(chuàng)建一個script標(biāo)簽,設(shè)置其src屬性,type屬性等,需要的朋友可以參考下
在日常的前端開發(fā)中,偶爾有需要動態(tài)插入javascript代碼的需求,基本思路是:
1、動態(tài)創(chuàng)建一個script標(biāo)簽,設(shè)置其src屬性,type屬性等
2、將script節(jié)點插入頁面,加載js文件
即相當(dāng)于將<script type="text/javascript" src="xxx.js"></script>添加到了頁面,只不過這個過程是動態(tài)完成的,為此特意封裝了一個函數(shù)來實現(xiàn):
// 動態(tài)插入script標(biāo)簽
function createScript(url, callback){
var oScript = document.createElement('script');
oScript.type = 'text/javascript';
oScript.async = true;
oScript.src = url;
/*
** script標(biāo)簽的onload和onreadystatechange事件
** IE6/7/8支持onreadystatechange事件
** IE9/10支持onreadystatechange和onload事件
** Firefox/Chrome/Opera支持onload事件
*/
// 判斷IE8及以下瀏覽器
var isIE = !-[1,];
if(isIE){
alert('IE')
oScript.onreadystatechange = function(){
if(this.readyState == 'loaded' || this.readyState == 'complete'){
callback();
}
}
} else {
// IE9及以上瀏覽器,F(xiàn)irefox,Chrome,Opera
oScript.onload = function(){
callback();
}
}
document.body.appendChild(oScript);
}
使用方法如:
createScript('xxx.js', function(){
console.log('OK');
});
1、動態(tài)創(chuàng)建一個script標(biāo)簽,設(shè)置其src屬性,type屬性等
2、將script節(jié)點插入頁面,加載js文件
即相當(dāng)于將<script type="text/javascript" src="xxx.js"></script>添加到了頁面,只不過這個過程是動態(tài)完成的,為此特意封裝了一個函數(shù)來實現(xiàn):
復(fù)制代碼 代碼如下:
// 動態(tài)插入script標(biāo)簽
function createScript(url, callback){
var oScript = document.createElement('script');
oScript.type = 'text/javascript';
oScript.async = true;
oScript.src = url;
/*
** script標(biāo)簽的onload和onreadystatechange事件
** IE6/7/8支持onreadystatechange事件
** IE9/10支持onreadystatechange和onload事件
** Firefox/Chrome/Opera支持onload事件
*/
// 判斷IE8及以下瀏覽器
var isIE = !-[1,];
if(isIE){
alert('IE')
oScript.onreadystatechange = function(){
if(this.readyState == 'loaded' || this.readyState == 'complete'){
callback();
}
}
} else {
// IE9及以上瀏覽器,F(xiàn)irefox,Chrome,Opera
oScript.onload = function(){
callback();
}
}
document.body.appendChild(oScript);
}
使用方法如:
復(fù)制代碼 代碼如下:
createScript('xxx.js', function(){
console.log('OK');
});
您可能感興趣的文章:
- 基于js里調(diào)用函數(shù)時,函數(shù)名帶括號和不帶括號的區(qū)別
- javascript獲取函數(shù)名稱、函數(shù)參數(shù)、對象屬性名稱的代碼實例
- js函數(shù)名與form表單元素同名沖突的問題
- js類中獲取外部函數(shù)名的方法與代碼
- js類中獲取外部函數(shù)名的方法
- 關(guān)于動態(tài)執(zhí)行代碼(js的Eval)實例詳解
- javascript中動態(tài)函數(shù)用法實例分析
- JS函數(shù)實現(xiàn)動態(tài)添加CSS樣式表文件
- 如何實現(xiàn)動態(tài)刪除javascript函數(shù)
- JavaScript 動態(tài)添加腳本,并觸發(fā)回調(diào)函數(shù)的實現(xiàn)代碼
- 如何用JavaScript動態(tài)呼叫函數(shù)(兩種方式)
- JS動態(tài)插入并立即執(zhí)行回調(diào)函數(shù)的方法
- 詳解js的事件處理函數(shù)和動態(tài)創(chuàng)建html標(biāo)記方法
- javascript實現(xiàn)根據(jù)函數(shù)名稱字符串動態(tài)執(zhí)行函數(shù)的方法示例
相關(guān)文章
JavaScript 字符串常用操作小結(jié)(非常實用)
這篇文章主要介紹了JavaScript 字符串常用操作的知識,包括字符串截取,查找類的方法,對js字符串操作相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2016-11-11JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別實例分析【 5 個區(qū)別】
這篇文章主要介紹了JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別,結(jié)合實例形式分析了JS箭頭函數(shù)和常規(guī)函數(shù)之間的 5 個區(qū)別與相關(guān)使用注意事項,需要的朋友可以參考下2020-05-05JavaScript中隨機數(shù)方法?Math.random()
這篇文章主要介紹了JavaScript中隨機數(shù)方法?Math.random(),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06layui.tree組件的使用以及搜索節(jié)點功能的實現(xiàn)
今天小編就為大家分享一篇layui.tree組件的使用以及搜索節(jié)點功能的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09js中的異步獲取到的數(shù)據(jù)到底能不能賦值給一個全局變量問題
這篇文章主要介紹了js中的異步獲取到的數(shù)據(jù)到底能不能賦值給一個全局變量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04JavaScript屏蔽Backspace鍵的實現(xiàn)代碼
這篇文章主要介紹了JavaScript屏蔽Backspace鍵的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11