如何动态加载外部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 相关文章推荐
javascript 原型模式实现OOP的再研究
Apr 09 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
Sep 20 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
Aug 29 Javascript
Three.js快速入门教程
Sep 09 Javascript
js数组操作方法总结(必看篇)
Nov 22 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
微信小程序之 catalog 切换实现解析
Sep 12 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
ThinkPHP采用模块和操作分析
2011/04/18 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
浅谈react前后端同构渲染
2017/09/20 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
Python中的urllib模块使用详解
2015/07/07 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
公司JAVA开发面试题
2015/04/02 面试题
营销与策划个人求职信
2013/09/22 职场文书
工程总经理工作职责
2013/12/09 职场文书
高中军训广播稿
2014/01/14 职场文书
关于环保的建议书400字
2014/03/12 职场文书
师德师风演讲稿
2014/05/05 职场文书
计划生育证明格式范本
2014/09/12 职场文书
幽默导游词开场白
2015/05/29 职场文书
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫