动态加裁js文件

来源:互联网 发布:java办公管理系统 编辑:程序博客网 时间:2024/05/19 02:16
/*
 * 动态加裁js文件,全局函数
 * langfullpath:要装载的js文件的路径,如http://localhost:8080/javascript/js1.js或c://javascript//js1.js
 * 20080509 yuanjq
 */
var loadJS = function(langfullpath){
    //以下的if判断为解决本地与网络加载
    if(langfullpath.toLowerCase().indexOf("file://")==0){
      var sId = langfullpath;//以文件路径作为id,考虑以后要求动态卸载
         if(!document.getElementById(sId)){
           var oHead = document.getElementsByTagName('HEAD').item(0);
           var oScript = document.createElement("script");
           oScript.language = "javascript";
           oScript.type = "text/javascript";
           oScript.id = sId;
           oScript.defer = true;
           //oScript.text = source;
           oScript.src = langfullpath;
           oHead.appendChild(oScript); 
     }
   }else{  
     SEditorAPI.Ajax({
     url:langfullpath,
     success:function(_oXmlHttp){        
       var source = _oXmlHttp.ResponseText;     
       var sId = langfullpath;//以文件路径作为id,考虑以后要求动态卸载
          if((source != null) && (!document.getElementById(sId))){
            var oHead = document.getElementsByTagName('HEAD').item(0);
            var oScript = document.createElement("script");
            oScript.language = "javascript";
            oScript.type = "text/javascript";
            oScript.id = sId;
            //oScript.defer = false;
            oScript.text = source;
            oHead.appendChild(oScript); 
          }},
     failure:function(_oXmlHttp){
      alert("loading error:"+_oXmlHttp.statusText + "(status code:" + _oXmlHttp.status + ")");
     } 
    });
   }
}
/*
 * ajax对象,全局函数
 * 20080509 yuanjq
 */
SEditorAPI.Ajax = function(_config){
 //url:请求的url,method:请交方式get/post,success:成功回调方法,failure:失败回调方法,asyn:同false/异true步
 _config = _config ||{};
 var url  = _config.url;
 var method   = _config.method || "GET";
 var success  = _config.success || function(_oXmlHttp){};
 var failure  = _config.failure || function(_oXmlHttp){};
 var asyn   = _config.asyn || false;
 var para  = _config.para || null;
 var GetHttpRequest = function(){
     if(window.ActiveXObject) return new ActiveXObject("MSXML2.XMLHTTP"); // IE
     else if (window.XMLHttpRequest) return new XMLHttpRequest(); // Gecko
 }
  
    var oXmlHttp = GetHttpRequest();
    oXmlHttp.OnReadyStateChange = function(){
        if (oXmlHttp.readyState == 4){
            if (oXmlHttp.status == 200 || oXmlHttp.status == 304){      
                  success(oXmlHttp);                 
            }
            else  {failure(oXmlHttp);}
        }
    }
    oXmlHttp.open(method,url,asyn);
    oXmlHttp.send(para);
}
原创粉丝点击