« 渗透,目的不单纯QQ积分导航样式 »

简单通用XMLHttp的js

刚登录163.com,随便看了下.163积分换网盘中的js代码。某些内容中不需要庞大的ajax框架,用这样简单的就好。通用。

下载地址:http://invite.mail.163.com/netdisk/js/xmlhttpv1.js http://invite.mail.163.com/netdisk/js/rpc.js

 

var XMLHttp = {

    _objPool: [],

    _getInstance: function (){

        for (var i = 0; i < this._objPool.length; i ++){

            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4){

                return this._objPool[i];

            }

        }

        this._objPool[this._objPool.length] = this._createObj();

        return this._objPool[this._objPool.length - 1];

    },

	 _createObj: function (){

        if (window.XMLHttpRequest){

            var objXMLHttp = new XMLHttpRequest();

        }

        else{

            var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];

            for(var n = 0; n < MSXML.length; n ++){

                try{

                    var objXMLHttp = new ActiveXObject(MSXML[n]);

                    break;

                }

                catch(e){

                }

            }

         }          

        if (objXMLHttp.readyState == null){

            objXMLHttp.readyState = 0;

            objXMLHttp.addEventListener("load", function (){

                    objXMLHttp.readyState = 4;

                    if (typeof objXMLHttp.onreadystatechange == "function"){

                        objXMLHttp.onreadystatechange();

                    }

                },  false);

        }

        return objXMLHttp;

    },

    sendReq: function (method, url, data, callback,requesttype){

        var objXMLHttp = this._getInstance();

        with(objXMLHttp){

            try{

                if (url.indexOf("?") > 0){

                    url += "&randnum=" + Math.random();

                }

                else{

                    url += "?randnum=" + Math.random();

                }

                open(method, url, true);

                setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

                send(data);

                onreadystatechange = function (){

                    if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))

                    {

                        callback(objXMLHttp,requesttype);

                    }

                }

            }

            catch(e){

                alert(e);

            }

        }

    }

};  

使用代码:

 

function loadjf(){		

	var url="http://invite.mail.163.com/netdisk/nd?jFenType=0";		

	XMLHttp.sendReq('GET', url, null, load_jfcallback, null);

}

function load_jfcallback(obj,reqdata){

	if(obj==null){		

		alert("系统繁忙,加载积分失败,请你稍后再试#Err0");

		return;		

	}

	var ret=obj.responseText;

	if(ret.indexOf("retcode=timeout")==0){

		alert("会话失效了,请你重新登录操作");

		return;	

	}

	if(ret=="-1"){

		alert("加载积分失败,不过你还可以继续尝试升级网盘#Err1");

		return;		

	}

	document.getElementById("jf").innerHTML=ret;

}

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206

湘 ICP 备 06003756 号
Copyright 山寨 Rights Reserved.