基于MiniSite.JsLoader实现外部JavaScript文件动态加载
作者:像素猫时间:2026-10-29 18:21:39浏览:441
本文介绍一种通过自定义JsLoader对象动态加载外部JavaScript文件的方法。该方案支持指定URL及回调函数,并在加载完成后执行指定逻辑。文中提供了完整的代码实现,并展示了在IE与Google Chrome浏览器下的具体测试结果,验证了该加载器在不同环境下的兼容性与有效性,为前端资源异步加载提供了实用参考。
JsLoader动态加载实现原理
近期发现一个用于动态加载JavaScript文件的加载器工具,其核心实现代码如下:
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>
具体运行结果如下所示:
在Internet Explorer浏览器中的测试表现:


在Google Chrome浏览器中的测试表现:


上述内容分享了利用JS加载器动态引入外部JavaScript文件的完整流程,希望能为相关技术学习提供切实帮助。
作者最新文章
js-cookie 安装与基础用法:set、get、remove 详解
2026-11-05 16:35:06
适合JavaScript初学者的实战项目:制作简易待办事项列表
2026-11-05 16:17:07
JS打开新标签页时怎么通过URL传递参数
2026-11-05 12:21:08
sigma.js 自定义节点样式:设置颜色、大小及标签显示的技巧
2026-11-05 09:55:00
JS 生成的统计图怎么导出为 PNG 图片或 PDF 文件?
2026-11-05 09:37:58
