使用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浏览器下的测试结果:
分类:
JavaScript
标签:
Javascript学习总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?