临时加载JS等前端文件

来源:互联网 发布:软件测试项目流程 编辑:程序博客网 时间:2024/06/16 13:12

/**
 * 导入Js文件
 */
function importFile(url, callback) {
 var caller = this.caller;
 var xmlhttp;
 if (window.XMLHttpRequest) {
  //针对以下浏览器:Firefox ,Mozillar ,Opera ,Safari ,IE7 ,IE8
  xmlhttp = new XMLHttpRequest();
  //针对某些版本的Mozillar浏览器的BUG进行修正的
  if (xmlhttp.overrideMimeType) {
   xmlhttp.overrideMimeType("text/html");
  }
  xmlhttp.open("GET", url, false);
  xmlhttp.onreadystatechange = function() {
   if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    if (window.execScript) {
     window.execScript(xmlhttp.responseText);
    } else {
     eval.call(window, xmlhttp.responseText);
    }
    if (typeof(callback) == 'function') {
     callback.call(caller);
    }
   }
  };
  xmlhttp.send(null);
 } else if (window.ActiveXObject) {
  //针对IE的各种版本
  //将以下各种可用于创建XMLHttpRequest对象的控件名放在数组里面
  var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
  //尝试创建XMLHttpRequest对象
  for (var i = 0; i < versions.length; i++) {
   try {
    //如果尝试创建成功的话,则终止循环
    //如果创建失败的话,则抛出异常,继续循环,继续尝试创建
    xmlhttp = new ActiveXObject(versions[i]);
    break;
   } catch (e) {}
  }
  xmlhttp.open("GET", url, false);
  xmlhttp.onreadystatechange = function() {
   if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    if (window.execScript) {
     window.execScript(xmlhttp.responseText);
    } else {
     eval.call(window, xmlhttp.responseText);
    }
    if (typeof(callback) == 'function') {
     callback.call(caller);
    }
   }
  };
  xmlhttp.send();
 }
}
0 0