Ajax提交

来源:互联网 发布:知乎经典钓鱼贴 编辑:程序博客网 时间:2024/05/01 20:38
<!--//xmlhttp和xmldom对象var DedeXHTTP = null;var DedeXDOM = null;var DedeContainer = null;var DedeShowError = false;var DedeShowWait = false;var DedeErrCon = "";var DedeErrDisplay = "下载数据失败";var DedeWaitDisplay = "正在下载数据...";//获取指定ID的元素function $DE(id) {    return document.getElementById(id);}//gcontainer 是保存下载完成的内容的容器//mShowError 是否提示错误信息//DedeShowWait 是否提示等待信息//mErrCon 服务器返回什么字符串视为错误//mErrDisplay 发生错误时显示的信息//mWaitDisplay 等待时提示信息//默认调用 DedeAjax('divid',false,false,'','','')function DedeAjax(gcontainer,mShowError,mShowWait,mErrCon,mErrDisplay,mWaitDisplay){    DedeContainer = gcontainer;    DedeShowError = mShowError;    DedeShowWait = mShowWait;    if(mErrCon!="") DedeErrCon = mErrCon;    if(mErrDisplay!="") DedeErrDisplay = mErrDisplay;    if(mErrDisplay=="x") DedeErrDisplay = "";    if(mWaitDisplay!="") DedeWaitDisplay = mWaitDisplay;    //post或get发送数据的键值对    this.keys = Array();    this.values = Array();    this.keyCount = -1;    this.sendlang = 'gb2312';    //请求头类型    this.rtype = 'text';    //初始化xmlhttp    //IE6、IE5    if(window.ActiveXObject) {        try { DedeXHTTP = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }        if (DedeXHTTP == null) try { DedeXHTTP = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }    }    else {        DedeXHTTP = new XMLHttpRequest();    }    //增加一个POST或GET键值对    this.AddKeyN = function(skey,svalue) {        if(this.sendlang=='utf-8') this.AddKeyUtf8(skey, svalue);        else this.AddKey(skey, svalue);    };        this.AddKey = function(skey,svalue) {        this.keyCount++;        this.keys[this.keyCount] = skey;        svalue = svalue+'';        if(svalue != '') svalue = svalue.replace(/\+/g,'$#$');        this.values[this.keyCount] = escape(svalue);    };    //增加一个POST或GET键值对    this.AddKeyUtf8 = function(skey,svalue) {        this.keyCount++;        this.keys[this.keyCount] = skey;        svalue = svalue+'';        if(svalue != '') svalue = svalue.replace(/\+/g,'$#$');        this.values[this.keyCount] = encodeURI(svalue);    };    //增加一个Http请求头键值对    this.AddHead = function(skey,svalue) {        this.rkeyCount++;        this.rkeys[this.rkeyCount] = skey;        this.rvalues[this.rkeyCount] = svalue;    };    //清除当前对象的哈希表参数    this.ClearSet = function() {        this.keyCount = -1;        this.keys = Array();        this.values = Array();        this.rkeyCount = -1;        this.rkeys = Array();        this.rvalues = Array();    };    DedeXHTTP.onreadystatechange = function() {        //在IE6中不管阻断或异步模式都会执行这个事件的        if(DedeXHTTP.readyState == 4){            if(DedeXHTTP.status == 200)            {                if(DedeXHTTP.responseText!=DedeErrCon) {                    DedeContainer.innerHTML = DedeXHTTP.responseText;                }                else {                    if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay;                }                DedeXHTTP = null;            }            else { if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay; }        }        else { if(DedeShowWait) DedeContainer.innerHTML = DedeWaitDisplay; }    };    //检测阻断模式的状态    this.BarrageStat = function() {        if(DedeXHTTP==null) return;        if(typeof(DedeXHTTP.status)!=undefined && DedeXHTTP.status == 200)        {            if(DedeXHTTP.responseText!=DedeErrCon) {                DedeContainer.innerHTML = DedeXHTTP.responseText;            }            else {                if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay;            }        }    };    //发送http请求头    this.SendHead = function()    {        //发送用户自行设定的请求头        if(this.rkeyCount!=-1)        {             for(var i = 0;i<=this.rkeyCount;i++)            {                DedeXHTTP.setRequestHeader(this.rkeys[i],this.rvalues[i]);            }        }         if(this.rtype=='binary'){         DedeXHTTP.setRequestHeader("Content-Type","multipart/form-data");    }else{        DedeXHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");    }};//用Post方式发送数据this.SendPost = function(purl) {    var pdata = "";    var i=0;    this.state = 0;    DedeXHTTP.open("POST", purl, true);    this.SendHead();    //post数据    if(this.keyCount!=-1)    {        for(;i<=this.keyCount;i++)        {            if(pdata=="") pdata = this.keys[i]+'='+this.values[i];            else pdata += "&"+this.keys[i]+'='+this.values[i];        }    }    DedeXHTTP.send(pdata);};//用GET方式发送数据this.SendGet = function(purl) {    var gkey = "";    var i=0;    this.state = 0;    //get参数    if(this.keyCount!=-1)    {         for(;i<=this.keyCount;i++)        {            if(gkey=="") gkey = this.keys[i]+'='+this.values[i];            else gkey += "&"+this.keys[i]+'='+this.values[i];        }        if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;        else  purl = purl + '&' + gkey;    }    DedeXHTTP.open("GET", purl, true);    this.SendHead();    DedeXHTTP.send(null);};//用GET方式发送数据,阻塞模式this.SendGet2 = function(purl) {    var gkey = "";    var i=0;    this.state = 0;    //get参数    if(this.keyCount!=-1)    {         for(;i<=this.keyCount;i++)        {            if(gkey=="") gkey = this.keys[i]+'='+this.values[i];            else gkey += "&"+this.keys[i]+'='+this.values[i];        }        if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;        else  purl = purl + '&' + gkey;    }    DedeXHTTP.open("GET", purl, false);    this.SendHead();    DedeXHTTP.send(null);    //firefox中直接检测XHTTP状态    this.BarrageStat();};//用Post方式发送数据this.SendPost2 = function(purl) {    var pdata = "";    var i=0;    this.state = 0;    DedeXHTTP.open("POST", purl, false);    this.SendHead();    //post数据    if(this.keyCount!=-1)    {        for(;i<=this.keyCount;i++)        {            if(pdata=="") pdata = this.keys[i]+'='+this.values[i];            else pdata += "&"+this.keys[i]+'='+this.values[i];        }    }    DedeXHTTP.send(pdata);    //firefox中直接检测XHTTP状态    this.BarrageStat();};} // End Class DedeAjax//初始化xmldomfunction InitXDom() {    if(DedeXDOM!=null) return;    var obj = null;    // Gecko、Mozilla、Firefox    if (typeof(DOMParser) != "undefined") {         var parser = new DOMParser();        obj = parser.parseFromString(xmlText, "text/xml");    }    // IE    else {         try { obj = new ActiveXObject("MSXML2.DOMDocument");} catch (e) { }        if (obj == null) try { obj = new ActiveXObject("Microsoft.XMLDOM"); } catch (e) { }    }    DedeXDOM = obj;};//读写cookie函数function GetCookie(c_name){    if (document.cookie.length > 0)    {        c_start = document.cookie.indexOf(c_name + "=")        if (c_start != -1)        {            c_start = c_start + c_name.length + 1;            c_end   = document.cookie.indexOf(";",c_start);            if (c_end == -1)            {                c_end = document.cookie.length;            }            return unescape(document.cookie.substring(c_start,c_end));        }    }    return null}function SetCookie(c_name,value,expiredays){    var exdate = new Date();    exdate.setDate(exdate.getDate() + expiredays);    document.cookie = c_name + "=" +escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); //使设置的有效时间正确。增加toGMTString()}-->


用法

<script language="javascript" type="text/javascript"><!--function CheckLogin(){  var taget_obj = document.getElementById('_userlogin');  myajax = new DedeAjax(taget_obj,false,false,'','','');  myajax.SendGet2("/member/ajax_loginsta.php");  DedeXHTTP = null;}function AutoScroll(obj){        $(obj).find("ul:first").animate({                marginTop:"-22px"        },500,function(){                $(this).css({marginTop:"0px"}).find("li:first").appendTo(this);        });}$(document).ready(function(){setInterval('AutoScroll("#scrollDiv")',3000)});--></script>


原创粉丝点击