⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestor.js

📁 一个页面界面的邮件程序
💻 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 += "&nbsp;&nbsp;";
		
	debug.innerHTML += "<br/>" + spacer + "&lt;"+ xmlNode.nodeName;
	
	var  attributes = xmlNode.attributes;
	for(var i = 0; i < attributes.length; i++) {
		debug.innerHTML += " " + attributes[i].name + "=\"" + attributes[i].value + "\"";
	}
	
	debug.innerHTML += "&gt;";
	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 + "&lt;/"+ xmlNode.nodeName +"&gt;";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -