zoukankan      html  css  js  c++  java
  • javascript 动态加载javascript文件

     1     /*
     2         loadFile(data, callback): 动态加载js文件
     3         data: 存放需要加载的js文件的url("url" || ["url", "url"])
     4         callback: 加载完成回调函数
     5     */
     6     function loadFile(data, callback){
     7         if(!data){return;}
     8         let k, arr = [], el = document.body;
     9         if(typeof(data) === 'string'){arr.push(data);}
    10         else if(Array.isArray(data) === true){for(k in data){arr.push(data[k]);}}
    11         else{return;}
    12         
    13         let load = (url, suc, err)=>{
    14             let script = document.createElement('script');
    15             script.type = "text/javascript";//type = 'module';
    16             script.src = url;
    17             el.appendChild(script);
    18             script.onload = function (e){if(typeof(suc) === "function"){suc(e);}}
    19             script.onerror = function (e){if(typeof(err) === "function"){err(e);}}
    20         }
    21         
    22         let timeout = ()=>{
    23             if(t === len){if(typeof(callback) === "function"){callback(t, len, arr);} return;}
    24             setTimeout(timeout, 1000);
    25         }
    26         
    27         let len = arr.length, t = 0;
    28         for(k in arr){load(arr[k], (e)=>{t++;});}
    29         timeout();
    30     }
    31     //调用
    32     loadFile("./main.js", (t, len, arr)=>{document.write(t+" "+len+" "+arr)});
    33     loadFile(["./main.js", "./init.js"], (t, len, arr)=>{document.write(t+" "+len+" "+arr)});
  • 相关阅读:
    静态区,堆,栈
    C语言位操作
    引用形参
    联合体/共同体 union
    typedef的使用
    有源晶振和无源晶振
    什么是SMT钢网
    点名游戏~自己先作
    我同学——应聘阿里巴巴之经过
    阳光明媚的一天~|~
  • 原文地址:https://www.cnblogs.com/weihexinCode/p/12316806.html
Copyright © 2011-2022 走看看