📄 requestor.js
字号:
/*
* Timeout
*/
var requestTimer;
var XMLHTTPREQUEST_TIMEOUT = 10000;
/*
* Returns a new XMLHttpRequest object, or false if this browser
* doesn't support it
*/
function newXMLHttpRequest() {
var xmlreq = false;
if (window.XMLHttpRequest) {
// Create XMLHttpRequest object in non-Microsoft browsers
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// Create XMLHttpRequest via MS ActiveX
try {
// Try to create XMLHttpRequest in later versions
// of Internet Explorer
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
// Failed to create required ActiveXObject
try {
// Try version supported by older versions
// of Internet Explorer
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
// Unable to create an XMLHttpRequest with ActiveX
}
}
}
// Harming timeout
if (xmlreq != null)
requestTimer = setTimeout(function() { xmlreq.abort(); }, XMLHTTPREQUEST_TIMEOUT);
return xmlreq;
}
/*
* Handler when the readyState changes on XmlHttpRequest object
*/
function getReadyStateHandler(req, responseXmlHandler) {
// Return an anonymous function that listens to the XMLHttpRequest instance
return function () {
try {
// If the request's status is "complete"
if (req.readyState == 4) {
// Disable timeout trigger
clearTimeout(requestTimer);
// Check that a successful server response was received
if (req.status == 200) {
// Pass the XML payload of the response to the handler function
responseXmlHandler(req.responseXML);
} else {
alert("HTTP error");
}
}
} catch(e) {
alert("Exception : " + e);
}
}
}
/*
* Debug function wich parse the XML result and print it in a pretty way.
* This function is recursive.
* @param HTML element where the result will be printed
* @param the xml result
* @param 0 for the first call (recursive function)
*/
function showDOM(debug, xmlNode, indent) {
if(!debug) return;
var spacer = "";
for(var i = 0; i < indent; i++)
spacer += " ";
debug.innerHTML += "<br/>" + spacer + "<"+ xmlNode.nodeName;
var attributes = xmlNode.attributes;
for(var i = 0; i < attributes.length; i++) {
debug.innerHTML += " " + attributes[i].name + "=\"" + attributes[i].value + "\"";
}
debug.innerHTML += ">";
if (xmlNode.nodeValue != null)
debug.innerHTML += spacer + xmlNode.nodeValue;
var childs = xmlNode.childNodes;
for(var i = 0; i < childs.length; i++)
showDOM(debug, childs[i], indent+1);
debug.innerHTML += "<br/>" + spacer + "</"+ xmlNode.nodeName +">";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -