如何动态加载外部Javascript文件


Posted in Javascript onDecember 02, 2015

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

var MiniSite=new Object();
/**
 * 判断浏览器
 */
MiniSite.Browser={ 
 ie:/msie/.test(window.navigator.userAgent.toLowerCase()), 
 moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), 
 opera:/opera/.test(window.navigator.userAgent.toLowerCase()), 
 safari:/safari/.test(window.navigator.userAgent.toLowerCase()) 
};
/**
 * JsLoader对象用来加载外部的js文件
 */
MiniSite.JsLoader={
 /**
  * 加载外部的js文件
  * @param sUrl 要加载的js的url地址
  * @fCallback js加载完成之后的处理函数
  */
 load:function(sUrl,fCallback){ 
  var _script=document.createElement('script'); 
  _script.setAttribute('charset','gbk'); 
  _script.setAttribute('type','text/javascript'); 
  _script.setAttribute('src',sUrl); 
  document.getElementsByTagName('head')[0].appendChild(_script); 
  if(MiniSite.Browser.ie){ 
   _script.onreadystatechange=function(){ 
    if(this.readyState=='loaded'||this.readyStaate=='complete'){ 
     //fCallback();
     if(fCallback!=undefined){
       fCallback(); 
     }
      
    } 
   }; 
  }else if(MiniSite.Browser.moz){ 
   _script.onload=function(){ 
    //fCallback(); 
    if(fCallback!=undefined){
      fCallback(); 
    }
   }; 
  }else{ 
   //fCallback();
   if(fCallback!=undefined){
     fCallback(); 
   }
  } 
 } 
};

JsLoader.js测试

<!DOCTYPE HTML>
<html>
 <head>
 <!--引入js加载器 -->
 <script type="text/javascript" src="js/JsLoader.js"></script>
 <title>JsLoaderTest.html</title>
 <script type="text/javascript">
  if(MiniSite.Browser.ie){
   //动态加载Js
   MiniSite.JsLoader.load("js/jquery-1.9.1.js",function(){
    alert("动态加载的是jquery-1.9.1.js");
    $(function(){
     alert("jquery-1.9.1.js动态加载完成之后做的处理操作");
    });
   }); 
  }else{
   MiniSite.JsLoader.load("js/jquery-2.0.3.js",function(){
    alert("动态加载的是jquery-2.0.3.js");
    $(function(){
     alert("jquery-2.0.3.js动态加载完成之后做的处理操作");
    });
   });
  }
 </script>
 </head>
 
 <body>
 
 </body>
</html>

测试结果如下:

IE浏览器下测试结果:

如何动态加载外部Javascript文件

如何动态加载外部Javascript文件

google浏览器下的测试结果:

如何动态加载外部Javascript文件

如何动态加载外部Javascript文件

为大家分享的如何使用js加载器动态加载外部Javascript文件,相信一定会对大家的学习有很大的帮助。

Javascript 相关文章推荐
js 判断一个元素是否在页面中存在
Dec 27 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
JavaScript中的全局对象介绍
Jan 01 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
javascript中this关键字详解
Dec 12 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 Javascript
使用webpack将ES6转化ES5的实现方法
Oct 13 Javascript
Vue的Options用法说明
Aug 14 Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 #Javascript
JavaScript如何禁止Backspace键
Dec 02 #Javascript
js文本框输入内容智能提示效果
Dec 02 #Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 #Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 #Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
Dec 02 #Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 #Javascript
You might like
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
destoon官方标签大全
2014/06/20 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
详解JavaScript树结构
2017/01/09 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python difflib模块示例讲解
2017/09/13 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
Python循环结构的应用场景详解
2019/07/11 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
What is EJB
2016/07/22 面试题
上级检查欢迎词
2014/01/18 职场文书
母亲节演讲稿
2014/05/27 职场文书
国际金融专业自荐信
2014/07/05 职场文书
机关作风建设整改方案
2014/10/27 职场文书
黄山导游词
2015/01/31 职场文书
高中体育课教学反思
2016/02/16 职场文书
初中化学教学反思
2016/02/22 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python