⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ajax.js

📁 网上垢污发射点发士大夫但是发犯得上发射点发射点法发犯得上发发发 发
💻 JS
字号:
function MagicAjax()
{
    this.errorMsg = new Array("ajax 调用发生错误","缺少类名或方法名","参数错误");
    this.async = true;//是否异步
    this.url = null;//请求的URL
    this.type = "get";// get or post
    this.param = null;//参数
    this.callBack = null;//回调函数
    this.data = null;//传递给回调函数的参数,没有则为NULL
    this.Timer = null;
    this.complete = false;
    this.currentUrl = "";//当前页面的URL,登陆后跳转
    var _xmlHttp ;
    var msXmlHttp = new Array(
                'Msxml2.XMLHTTP.5.0',
                'Msxml2.XMLHTTP.4.0',
                'Msxml2.XMLHTTP.3.0',
                'Msxml2.XMLHTTP',
                'Microsoft.XMLHTTP');
    for(var i = 0; i < msXmlHttp.length; i++)
    {
        try{
            _xmlHttp = new ActiveXObject(msXmlHttp[i]);
        }
        catch (e) {
            _xmlHttp = null;
        }
    }
    if(!_xmlHttp && typeof XMLHttpRequest != "undefined")
        _xmlHttp = new XMLHttpRequest();
    
    this.xmlHttp = _xmlHttp;
    
    this._callback = function (_this,request, callback, data) {
        if(request.readyState == 4) {
            _this.complete = true;
            window.clearInterval(_this.Timer);
            if(request.status != 200)  alert(_this.errorMsg[0]+ "status:" + request.status);
            else {
                var msg = request.responseText;
                switch(msg) {
                    case "ajaxError1":
                        break;
                    case "ajaxError2":
                        break;
                    case "ajaxError3":
                        break;
                    case "unlogin":
                        window.location.href = "../user/Sign-in.aspx" + ( _this.currentUrl == "" ? "" : "?url-redirect-to=" + _this.currentUrl );
                        break;
                    default :
                        callback(request, data);
                        break;
                }                
            }
        }
    }
    
    this.exec = function()
    {
        var _this = this;
        if(_this.url == null)
        {
            alert("请求地址未指定");
            return;
        }
        if(_this.callBack == null)
        {
            alert("回调函数未指定");
            return;
        }
        var isGet = _this.type.toLowerCase() == "get";
        if(isGet)
        {
             _this.url += ((_this.url.indexOf("?") > -1) ? "&" : "?") +_this.param +"&" + Math.random();  
        }
        if(_this.async)
            _this.xmlHttp.onreadystatechange = function() { _this._callback(_this,_this.xmlHttp,_this.callBack,_this.data); };
        if(isGet){
            _this.xmlHttp.open("get",_this.url,_this.async);
            _this.xmlHttp.send(null);
        }
        else{
            _this.xmlHttp.open("post",_this.url,_this.async);
            _this.xmlHttp.setRequestHeader('Content-length', _this.param.length);
            _this.xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            _this.xmlHttp.send(_this.param);
        }
        if(_this.async)   {
            _this.complete = false;
            _this._callback(_this,_this.xmlHttp,_this.callBack,_this.data);
            if(!_this.complete){
                _this.Timer = window.setInterval(function() {
                    if(!_this.complete)    _this._callback(_this,_this.xmlHttp,_this.callBack,_this.data);
                    else  window.clearInterval(_this.Timer);},1000);
            }
        }else{
            return this.xmlHttp.responseText;
        }
    }
}

function callAjax(method, callback)
{   
    var objAjax=new MagicAjax();
    var param = "method="+method+"&reserve=1";
    var argLenth = arguments.length;
    if(argLenth>2)
        for(var i = 2; i<argLenth; i++)
            param=param+"&"+arguments[i].name+"="+escape(arguments[i].value);
    objAjax.currentUrl = escape( window.location.href);
    objAjax.url = "ajax.ashx";
    objAjax.param = param;
    objAjax.callBack = callback;
    objAjax.exec();
}

function callAjaxSync(method)
{   
    var objAjax=new MagicAjax();
    var param = "method="+method+"&reserve=1";
    var argLenth = arguments.length;
    if(argLenth>1)
        for(var i = 1; i<argLenth; i++)
            param=param+"&"+arguments[i].name+"="+arguments[i].value;
    objAjax.currentUrl = escape( window.location.href);
    objAjax.url = "ajax.ashx";
    objAjax.param = param;
    objAjax.callBack = function(){};
    objAjax.async=false;
    return objAjax.exec();
}

function Updater(ajaxTemplate, output, callBack){	      var xmlHttp;    var param = "AjaxTemplate=" + ajaxTemplate;	var msXmlHttp = new Array(
                'Msxml2.XMLHTTP.5.0',
                'Msxml2.XMLHTTP.4.0',
                'Msxml2.XMLHTTP.3.0',
                'Msxml2.XMLHTTP',
                'Microsoft.XMLHTTP');
    var argLenth = arguments.length;
    
    var divOutput = document.getElementById(output);
    
    if(argLenth > 3)
    {
        for(var i = 3; i < argLenth; i++)
        {
            param = param + "&" + arguments[i].name + "=" + arguments[i].value;
        }
    }
                
    for(var i = 0; i < msXmlHttp.length; i++)
    {
        try
        {
            xmlHttp = new ActiveXObject(msXmlHttp[i]);
            if(xmlHttp!=null) break;
        }
        catch (e) 
        {
            xmlHttp = null;
        }
    }
    if(!xmlHttp && typeof XMLHttpRequest != "undefined")
    {
        xmlHttp = new XMLHttpRequest();
    }
    
    if(callBack == null)
    { 
        xmlHttp.onreadystatechange = function(){ UpdaterCallback(xmlHttp, divOutput);};
    }
    else
    {
        xmlHttp.onreadystatechange = callBack;
    }
    
    xmlHttp.open("post","/AjaxHelper/AjaxHelper.aspx",true);
    xmlHttp.setRequestHeader('Content-length', param.length);
    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlHttp.setRequestHeader('Connection', 'close');
    xmlHttp.send(param);            }function UpdaterCallback(http,output){    if(http.readyState == 4) 
    {
        if(http.status != 200)
        {  
            output.innerHTML = "Error:" + http.status + http.responseText;
        }
        else if(output!= null)
        {
            var s = http.responseText;
            
            //set_innerHTML(output, s, null);
            output.innerHTML = s;
            
            //execInnerScript(s);     
        }    }}function UpdaterNonText(ajaxTemplate){	      var xmlHttp;    var param = "AjaxTemplate=" + ajaxTemplate;	var msXmlHttp = new Array(
                'Msxml2.XMLHTTP.5.0',
                'Msxml2.XMLHTTP.4.0',
                'Msxml2.XMLHTTP.3.0',
                'Msxml2.XMLHTTP',
                'Microsoft.XMLHTTP');
    var argLenth = arguments.length;
    
    if(argLenth > 1)
    {
        for(var i = 1; i < argLenth; i++)
        {
            param = param + "&" + arguments[i].name + "=" + arguments[i].value;
        }
    }
                
    for(var i = 0; i < msXmlHttp.length; i++)
    {
        try
        {
            xmlHttp = new ActiveXObject(msXmlHttp[i]);
            if(xmlHttp!=null) break;
        }
        catch (e) 
        {
            xmlHttp = null;
        }
    }
    if(!xmlHttp && typeof XMLHttpRequest != "undefined")
    {
        xmlHttp = new XMLHttpRequest();
    }
    
    xmlHttp.onreadystatechange = function(){};
    
    xmlHttp.open("post","/AjaxHelper/AjaxHelper.aspx",true);
    xmlHttp.setRequestHeader('Content-length', param.length);
    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlHttp.setRequestHeader('Connection', 'close');
    xmlHttp.send(param);            }//执行innerHTML里面的javascriptfunction execInnerScript(innerhtml)
{  
  var temp=innerhtml.replace(/\n|\r/g,"");
  var regex=/<script.+?<\/script>/gi;
  var arr=temp.match(regex);  
  if(arr)
  {    
    for(var iiiiiiiiii_iii=0;iiiiiiiiii_iii<arr.length;iiiiiiiiii_iii++)
    {      
      var temp1=arr[iiiiiiiiii_iii];      
      var reg=new RegExp("^<script(.+?)>(.+)<\/script>$","gi");
      reg.test(temp1);                  
      eval(RegExp.$2);            
    }
  }  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -