function JsLoader(){};
JsLoader.loaded = [];
JsLoader.prototype = {
_path : null,//要加载的JS的路径
_head : null,//文档对象的head头对象
/**
* 主要调用方法.
*/
require : function(jsPath,callback) {
if(!this._check(jsPath))return false;
if(this._isload(jsPath))return true;
this._ajaxLoad(callback);
return true;
},
load : function(jsPath,callback) {
return this.require(jsPath, callback);
},
_check : function(jsPath) {
if(!jsPath) {
alert('请指定要加载的JS路径!');
return false;
}
var head = document.getElementsByTagName('head');
if(!head||head.length<1) {
alert('文档对象document必须有HEAD头!');
return false;
}
this._path = jsPath;
this._head = head[0];
return true;
},
_isload : function(jsPath) {
for(var i=0; i<JsLoader.loaded.length; i++) {
if(JsLoader.loaded[i].toLowerCase()==jsPath.toLowerCase())
return true;
}
JsLoader.loaded[JsLoader.loaded.length]=jsPath;
return false;
},
_ajaxLoad : function(callback) {
var head = this._head;
base.request(this._path,function(xmlHttp, error) {
var script = document.createElement('script');
script.type = "text/javascript";
script.text = xmlHttp.responseText;
head.appendChild(script);
if(!callback)return;
try{
if(typeof(callback)=='function') callback();
else eval(callback);
}catch(ex){alert(ex.message);};
});
}
};
JS工具类——Js动态加载类
最新推荐文章于 2021-11-17 16:04:03 发布