使用js加載器動態加載外部Javascript文件


  今天在網上找到了一個可以動態加載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瀏覽器下的測試結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM