動態加載JS文件,並根據JS文件的加載狀態來執行自己的回調函數,
在很多場景下,我們需要在動態加載JS文件的時候,根據加載的狀態來進行后續的操作,需要在JS加載成功后,執行另一方法,這個方法是依托在加載的JS文件上的(調用了這JS里面的方法等等),此時就需要將這個方法作為JS加載后的回調函數進行執行
具體實例:
JS 代碼如下
function loadJs(loadUrl,callMyFun,argObj){
var loadScript=document.createElement('script');
loadScript.setAttribute("type","text/javascript");
loadScript.setAttribute('src',loadUrl);
console.log(loadUrl)
document.getElementsByTagName("head")[0].appendChild(loadScript);
//判斷服務器
if(navigator.userAgent.indexOf("IE") >=0){
//IE下的事件
loadScript.onreadystatechange=function(){
if(loadScript && (loadScript.readyState == "loaded" || loadScript.readyState == "complete")){
//表示加載成功
loadScript.onreadystatechange=null;
callMyFun()//執行回調
}
}
}
else{
loadScript.onload=function(){
loadScript.onload=null;
callMyFun();
}
}
console.log(argObj);
}
function loadJsBtn(){
//如需傳參
var argObj={};
loadJs("js/jqueryww.js",callMyFun,argObj);
}
function callMyFun(){
alert("執行我的回調啊")
}
HTML代碼
<button onclick="loadJsBtn()">加載JS文件</button>
