今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下:

JsLoader.js

 1 var MiniSite=new Object();
 2 /**
 3  * 判断浏览器
 4  */
 5 MiniSite.Browser={   
 6     ie:/msie/.test(window.navigator.userAgent.toLowerCase()),   
 7     moz:/gecko/.test(window.navigator.userAgent.toLowerCase()),   
 8     opera:/opera/.test(window.navigator.userAgent.toLowerCase()),   
 9     safari:/safari/.test(window.navigator.userAgent.toLowerCase())   
10 };
11 /**
12  * JsLoader对象用来加载外部的js文件
13  */
14 MiniSite.JsLoader={
15     /**
16      * 加载外部的js文件
17      * @param sUrl 要加载的js的url地址
18      * @fCallback js加载完成之后的处理函数
19      */
20     load:function(sUrl,fCallback){   
21         var _script=document.createElement('script');   
22         _script.setAttribute('charset','gbk');   
23         _script.setAttribute('type','text/javascript');   
24         _script.setAttribute('src',sUrl);   
25         document.getElementsByTagName('head')[0].appendChild(_script);   
26         if(MiniSite.Browser.ie){   
27             _script.onreadystatechange=function(){   
28                 if(this.readyState=='loaded'||this.readyStaate=='complete'){ 
29                     //fCallback();
30                     if(fCallback!=undefined){
31                          fCallback(); 
32                     }
33                      
34                 }   
35             };   
36         }else if(MiniSite.Browser.moz){   
37             _script.onload=function(){   
38                 //fCallback(); 
39                 if(fCallback!=undefined){
40                         fCallback(); 
41                 }
42             };   
43         }else{   
44             //fCallback();
45             if(fCallback!=undefined){
46                     fCallback(); 
47             }
48         }   
49     }   
50 };

JsLoader.js测试

 1 <!DOCTYPE HTML>
 2 <html>
 3   <head>
 4   <!--引入js加载器  -->
 5    <script type="text/javascript" src="js/JsLoader.js"></script>
 6     <title>JsLoaderTest.html</title>
 7     <script type="text/javascript">
 8         if(MiniSite.Browser.ie){
 9             //动态加载Js
10             MiniSite.JsLoader.load("js/jquery-1.9.1.js",function(){
11                 alert("动态加载的是jquery-1.9.1.js");
12                 $(function(){
13                     alert("jquery-1.9.1.js动态加载完成之后做的处理操作");
14                 });
15             });   
16         }else{
17             MiniSite.JsLoader.load("js/jquery-2.0.3.js",function(){
18                 alert("动态加载的是jquery-2.0.3.js");
19                 $(function(){
20                     alert("jquery-2.0.3.js动态加载完成之后做的处理操作");
21                 });
22             });
23         }
24     </script>
25   </head>
26   
27   <body>
28    
29   </body>
30 </html>

测试结果如下:

IE浏览器下测试结果:

google浏览器下的测试结果:

posted on 2017-12-26 16:00  巨象  阅读(324)  评论(0编辑  收藏  举报