ajax_XmlHttp lcs

function $(e) {
var tag = document.getElementById(e);
if(tag) return tag;
tag = document.getElementsByName(e);
if(tag.tagName == undefined) return null;
return tag;
}
function CreaeXMLDOM()
{
var MSDOM = ['MSXML2.DOMDocument.4.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument.2.6', 'MSXML2.DOMDocument', 'Microsoft.XMLDOM'];
var XMLDOM;
for(var n = 0; n < MSDOM.length; n++)
{
try
{
XMLDOM = new ActiveXObject(MSDOM[n]);
break;
}
catch(e)
{
}
}
if(typeof(XMLDOM) != "object")
XMLDOM = document.implementation.createDocument("text/xml", "", null);
if(typeof(XMLDOM) != "object")
alert('创建XMLDOM对象失败,请升级您的浏览器');
return XMLDOM;
}

function GetXmlNodeValue(objXmlElement)
{
var str = "";
if(window.XMLHttpRequest)        //Mozilla
{
try
{
str = objXmlElement.firstChild.nodeValue;
}
catch(ex)
{
alert(ex);
str = "";
}
}
else if(window.ActiveXObject)    //IE
{
str = objXmlElement.text;
}
return str;
}
var Request = new function(){
this.pool = new Array();
//建立XMLHttp对像,并处理通道
this.getXMLHttp = function (chunnel)
{
if(chunnel != null)
{
for (var a = 0; a < this.pool.length; a++)
{
if(this.pool[a]["chunnel"] == chunnel)
{
if(this.pool[a]["obj"].readyState == 0 || this.pool[a]["obj"].readyState == 4)
{
return this.pool[a]["obj"];
}
else
{
return "busy";
}
}
}
this.pool[this.pool.length] = new Array();
this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
this.pool[this.pool.length - 1]["chunnel"] = chunnel;
return this.pool[this.pool.length - 1]["obj"];

for (var i = 0; i < this.pool.length; i++)
{
if (this.pool[i]["obj"].readyState == 0 || this.pool[i]["obj"].readyState == 4)
{
return this.pool[i]["obj"];
}
}
this.pool[this.pool.length] = new Array();
this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
this.pool[this.pool.length - 1]["chunnel"] = "";
return this.pool[this.pool.length - 1]["obj"];
}
this.createXMLHttp = function ()
{
if(window.XMLHttpRequest)
{
var xmlObj = new XMLHttpRequest();
}
else
{
var MSXML = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var n = 0; n < MSXML.length; n++)
{
try
{
var xmlObj = new ActiveXObject(MSXML[n]);       
break;
}
catch(e)
{
}
}
}
return xmlObj;
}
//主运行部分  IsAsynchronous是否为异步方式  异步:后面的代码无需等待此回调执行完毕   同步:等待XmlHttp返回结果后再继续执行
this.SendToPage = function (url,data,callback,IsAsynchronous,chunnel)
{
var objXMLHttp = this.getXMLHttp(chunnel)
//创建XMLHTTP对象失败
if(typeof(objXMLHttp) != "object")
{
if (objXMLHttp == 'busy')
{
alert('您的上次操作还没有完成,请稍候再进行此操作');
}
else
{
alert('请升级您的浏览器');
}
return ;
}
//解决XMLHTTP请求时浏览器缓存的问题
url += (url.indexOf("?") >= 0) ? "&nowtime=" + new Date().getTime() : "?nowtime=" + new Date().getTime();
if(data == "")
{
objXMLHttp.open('GET' , url, IsAsynchronous);
objXMLHttp.send('');
}
else
{
objXMLHttp.open('POST' , url, IsAsynchronous);
//为Post时,需要设置一下XMLHTTP的头
objXMLHttp.setRequestHeader("Content-Length",data.length);
objXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded charset=utf-8");
objXMLHttp.send(data);
}
//处理回调函数
if(typeof(callback) == "function" )
{
if (IsAsynchronous)
{
objXMLHttp.onreadystatechange = function ()
{
if (objXMLHttp.readyState == 4)
{
if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
{
callback(objXMLHttp,'');
}
else
{
alert("发生错误:\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
callback(null,'发生错误:' + objXMLHttp.status +":"+ objXMLHttp.statusText);
}
}
}
}
else
{
if (objXMLHttp.readyState == 4)
{
if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
{
callback(objXMLHttp,'');
}
else
{
alert("发生错误:\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
callback(null,'发生错误:' + objXMLHttp.status +":"+ objXMLHttp.statusText);
}
}
}
}
}
}
var DateTime = new function ()
{
var d = new Date();
var s;
s = d.getYear() + '-';
s += (d.getMonth() + 1) + "-";
s += d.getDate();
this.Now = s;
}
/*--------------------------IE  FireFox 兼容------------------------*/
//innerText
if(typeof HTMLElement!="undefined"){
HTMLElement.prototype.innerText
getter = function(){
return this.textContent;
}

HTMLElement.prototype.innerText
setter = function(txtStr){
this.textContent = txtStr
}
}

原文地址:https://www.cnblogs.com/luchaoshuai/p/1153118.html