www.pudn.com > tree.rar > xmlhttp.js, change:2008-03-29,size:2331b


var XmlHttp ={ 
}; 
XmlHttp.getXmlHttpPrefix = function(){ 
	if (this.getXmlHttpPrefix.prefix) 
	return this.getXmlHttpPrefix.prefix; 
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; 
	var o; 
	for (var i = 0; i < prefixes.length; i++){ 
		try{ 
			o = new ActiveXObject(prefixes[i] + ".XmlHttp"); 
			return this.getXmlHttpPrefix.prefix = prefixes[i]; 
		} 
		catch (ex){ 
		}; 
	} 
	throw new Error("Could not find an installed XML parser"); 
} 
XmlHttp.create = function (){ 
	try{ 
		if (window.XMLHttpRequest){ 
			var req = new XMLHttpRequest(); 
			if (req.readyState == null){ 
				req.readyState = 1; 
req.addEventListener("load", function (){ 
	req.readyState = 4; 
	if (typeof req.onreadystatechange == "function") 
	req.onreadystatechange(); 
} 
, false); 
} 
return req; 
} 
if (window.ActiveXObject){ 
return new ActiveXObject(this.getXmlHttpPrefix() + ".XmlHttp"); 
} 
} 
catch (ex){ 
} 
throw new Error("Your browser does not support XmlHttp objects"); 
}; 
XmlHttp.load = function(url, cb){ 
	var xmlHttp = this.create(); 
	var loadded = false; 
	var d = new Date(); 
	url += (url.indexOf("?") > -1 ? "&" : "?") + "r=" + d.getMonth() + "," + 
	d.getDay() + "," + d.getHours() + "," + d.getMinutes() + "," + d.getSeconds(); 
	xmlHttp.open("GET", url, true); 
	xmlHttp.setRequestHeader("Cache-Control", "no-cache"); 
xmlHttp.onreadystatechange = function(){ 
	if(4 == xmlHttp.readyState){ 
		if(!loadded){ 
			loadded = true; 
			var doc = null; 
			if(null != xmlHttp.responseXML){ 
				doc = xmlHttp.responseXML.documentElement; 
			} 
			if("function" == typeof cb){ 
setTimeout(function(){ 
	cb(doc); 
} 
,0); 
} 
} 
} 
} 
xmlHttp.send(null);; 
} 
XmlHttp.parseXmlNode = function(o, withChild){ 
	withChild = withChild || false; 
	var p = Object(); 
	p["tagName"] = o.tagName; 
	var attr = o.attributes; 
	if(null != attr){ 
		var al = attr.length; 
		for(var i = 0;i < al;i ++){ 
			var e = attr.item(i); 
			p[e.nodeName] = e.nodeValue; 
		} 
	} 
	else{ 
		p = null; 
	} 
	if(withChild){ 
		var e = o.firstChild; 
		while(null != e){ 
			if(null == e.nodeValue){ 
				if(null == p){ 
					p = Object(); 
				} 
				if( 1 == e.nodeType){ 
					p[e.nodeName] = e.firstChild.nodeValue; 
				} 
				else{ 
					p[e.nodeName] = e.nodeValue; 
				} 
				e = e.nextSibling; 
			} 
		} 
	} 
	return p; 
}