utl.js
function createXmlTree(node, indent) { if (node == null) return ""; var str = ""; switch (node.nodeType) { case 1: // Element str += "<div class='element'><<span class='elementname'>" + node.nodeName + "</span>"; var attrs = node.attributes; for (var i = 0; i < attrs.length; i++) str += createXmlAttribute(attrs[i]); if (!node.hasChildNodes()) return str + "/></div>"; str += "><br />"; var cs = node.childNodes; for (var i = 0; i < cs.length; i++) str += createXmlTree(cs[i], indent + 3); str += "</<span class='elementname'>" + node.nodeName + "</span>></div>"; break; case 9: // Document var cs = node.childNodes; for (var i = 0; i < cs.length; i++) str += createXmlTree(cs[i], indent); break; case 3: // Text if (!/^/s*$/.test(node.nodeValue)) str += "<span class='text'>" + node.nodeValue + "</span><br />"; break; case 7: // ProcessInstruction str += "<?" + node.nodeName; var attrs = node.attributes; for (var i = 0; i < attrs.length; i++) str += createXmlAttribute(attrs[i]); str+= "?><br />" break; case 4: // CDATA str = "<div class='cdata'><![CDATA[<span class='cdata-content'>" + node.nodeValue + "</span>]" + "]></div>"; break; case 8: // Comment str = "<div class='comment'><!--<span class='comment-content'>" + node.nodeValue + "</span>--></div>"; break; case 10: str = "<div class='doctype'><!DOCTYPE " + node.name; if (node.publicId) { str += " PUBLIC /"" + node.publicId + "/""; if (node.systemId) str += " /"" + node.systemId + "/""; } else if (node.systemId) { str += " SYSTEM /"" + node.systemId + "/""; } str += "></div>"; // TODO: Handle custom DOCTYPE declarations (ELEMENT, ATTRIBUTE, ENTITY) break; default: //alert(node.nodeType + "/n" + node.nodeValue); inspect(node); } return str; } function inspect(obj) { var str = ""; for (var k in obj) str += "obj." + k + " = " + obj[k] + "/n"; window.alert(str); } function createXmlAttribute(a) { return " <span class='attribname'>" + a.nodeName + "</span><span class='attribvalue'>=/"" + a.nodeValue + "/"</span>"; }
<HTML><HEAD><TITLE>Ajax test</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><SCRIPT src="Ajax test_files/utl.js"></SCRIPT><LINK rev=stylesheet media=all href="Ajax test_files/Ajax.css" type=text/css rel=stylesheet><SCRIPT>//------------ XMLHttpObj类 ----------------function XMLHttpObject(url,Syne){ var XMLHttp=null var o=this this.url=url this.Syne=Syne this.sendData = function() { if (window.XMLHttpRequest) { XMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } with(XMLHttp){ open("GET", this.url, this.Syne); onreadystatechange = o.CallBack; send(null); } } this.CallBack=function() { if (XMLHttp.readyState == 4) { if (XMLHttp.status == 200) { o.debugXML("readyState:" + XMLHttp.readyState + "<br/>") o.debugXML("status :" + XMLHttp.status + "<br/>") o.debugXML(" <div style='background:#ffc;margin-left:10px;border:1px solid #669;padding:3px'>" + createXmlTree(XMLHttp.responseXML,0) + "</div>") } } } this.getText=function() { if (XMLHttp==null) {return "还没加载 XMLHttpRequest"} if (XMLHttp.readyState==4) {return XMLHttp.responseText} return XMLHttp.readyState } this.debugXML=function(log) { try{document.getElementById("XMLDebug").innerHTML+=log} catch(e){} }}var XMLDoc1=new XMLHttpObject("tree.xml",true)</SCRIPT><META content="MSHTML 6.00.3790.2706" name=GENERATOR></HEAD><BODY><SELECT onchange='XMLDoc1.url=this.value;document.getElementById("XMLDebug").innerHTML=""'> <OPTION value=tree.xml selected>tree.xml</OPTION> <OPTION value=xtree.xsl>xtree.xsl</OPTION> <OPTION value=/feed.asp>Blog Feed</OPTION></SELECT> <INPUT onclick=XMLDoc1.sendData() type=button value=XMLDoc1.sendData()> <INPUT onclick=alert(XMLDoc1.getText()) type=button value=XMLDoc1.getText()> <INPUT onclick="if (confirm('clear log?')) {document.getElementById('XMLDebug').innerHTML=''}" type=button value=ClearLog><DIV id=XMLDebug></DIV></BODY></HTML>
HTML { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px}BODY { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px}BODY { BACKGROUND: buttonface; FONT: Message-Box}FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px}FIELDSET FIELDSET { MARGIN: 5px}BUTTON { MARGIN-LEFT: 5px}TEXTAREA { WIDTH: 100%; HEIGHT: 200px}#out { BORDER-RIGHT: threeddarkshadow 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: threeddarkshadow 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 3px; BACKGROUND: white; PADDING-BOTTOM: 3px; BORDER-LEFT: threeddarkshadow 1px solid; COLOR: black; PADDING-TOP: 3px; BORDER-BOTTOM: threeddarkshadow 1px solid; FONT-FAMILY: Verdana}#srcTextContainer { DISPLAY: none}.element { PADDING-LEFT: 16px; COLOR: blue}.elementname { COLOR: darkred}.attribname { COLOR: red}.attribvalue { COLOR: blue}.text { PADDING-LEFT: 16px; COLOR: windowtext}.cdata-content { DISPLAY: block; PADDING-LEFT: 16px; BORDER-LEFT: gray 1px solid; COLOR: windowtext; FONT-FAMILY: Courier New; WHITE-SPACE: pre}.comment { PADDING-LEFT: 16px; COLOR: blue}.doctype { PADDING-LEFT: 16px; COLOR: blue}.comment-content { DISPLAY: block; COLOR: gray; FONT-FAMILY: Courier New; WHITE-SPACE: pre}#XMLDebug { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #000 1px solid; MARGIN-TOP: 6px; PADDING-LEFT: 4px; FONT-SIZE: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 4px; OVERFLOW: auto; BORDER-LEFT: #000 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px solid; HEIGHT: 400px}
新闻热点
疑难解答
图片精选