javascript和JQuery焦点图和代码特效大全
当前最流行的开源CMS网站系统大全
当前位置:主页 > WEB前端 > JavaScript >

动态加载javascript功能模块

来源:IT技术网编辑:一页书发布于:2013-08-23人围观JavaScript动态加载功能模块

动态加载javascript功能模块,具体代码如下:

 

/**
 * 生成命名空间
 * @param {String} str 要生成的命名空间字符串
 * 如果要生成com.google命名空间,就使用Msw.ns("com.google")
 */
if(!window.Msw) Msw = {};
Msw.ns = function(){
var ns=function(n, o){
if(n.length == 0) return;
if(!o[n[0]]) o[n[0]] = {};
ns(n.slice(1, n.length), o[n[0]]);
}
//str 要生成的命名空间字符串
return function(str){
if(typeof str != 'string' || str.length == 0) return;
str = str.split('.');
ns(str,window);
}
}();
 
Msw.ns('Msw.util');
 
/**
 * 加载所指定的JS文件
 * @param {String} url 要加载的JS文件
 * @param {function} resultFN 加载成后执行的方法
 * @param {function} faultFN 加载失败后执行的方法
 * @return {boolean} 返回是否已经加载过
 * Msw.util.ajaxJS.load(url, resultFN, faultFN);
 *
 * @param {String} url 要加载的JS文件
 * @return {boolean} 返回是否已经加载过
 * Msw.util.ajaxJS.isLoad(url);
 */
Msw.util.ajaxJS = function(){
var jss, ajax, isLoad;
jss = []; //用于存储加载成功的JS
ajax = function (url, resultFN, faultFN)
{
var xmlHttp;
var strInnerHTML;
try{
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}catch(e){alert("晕");}
 
//xmlHttp.open("post",url,true);
xmlHttp.open("get",url,true);
//xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencode");
xmlHttp.onreadystatechange = function ()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200){
!isLoad(url) && jss.push(url); //if(!isLoad(url)) jss.push(url);
resultFN(xmlHttp.responseText,xmlHttp);
}else{
faultFN(xmlHttp);
}
}
};
xmlHttp.send(null);
 
};
 
 
isLoad = function(url)
{
for(var i = 0; i < jss.length; i ++){
if(jss[i] == url){
return true;
}
}
return false;
};
 
return {
load: function(url, resultFN, faultFN){
if(url == null || url == "" || isLoad(url)) return true;
new ajax(url, resultFN, faultFN);
return false;
},
isLoad: function(url){
return isLoad(url);
}
};
}();

JavaScript,动态,加载,相关的文章
有时间的话来看看IT界的突发事件