如何动态加载外部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代码
Feb 28 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
js保留两位小数方法总结
Jan 31 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
vue动态设置路由权限的主要思路
Jan 13 Vue.js
JavaScript 防篡改对象的用法示例
Apr 24 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
传播学专业毕业生自荐信
2013/11/04 职场文书
结婚邀请函范文
2014/01/14 职场文书
班级年度安全计划书
2014/05/01 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python