这是在www.java2s.com网站下载的一个以Javascript+xml的树型列表,这个列表界面非常的漂亮,但是由于里面内容比较复杂,而现在项目需要用到这个列表,我到现在还没有摸清怎么在里面让点击一个树型的项目转到别的网页里面去,希望有兴趣的朋友一起研究一下。 
部分代码如下:  
 <script>  
   
function dtmlXMLLoaderObject(funcObject,dhtmlObject){  
 this.xmlDoc="";  
 this.onloadAction=funcObject||null;  
 this.mainObject=dhtmlObject||null;  
 return this;  
};  
   
 dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){  
 this.check=function(){  
 if(!dhtmlObject.xmlDoc.readyState)dhtmlObject.onloadAction(dhtmlObject.mainObject);  
 else{  
 if(dhtmlObject.xmlDoc.readyState != 4)return false;  
 else dhtmlObject.onloadAction(dhtmlObject.mainObject);}  
};  
 return this.check;  
};  
   
   
 dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName){  
 if(this.xmlDoc.responseXML){var temp=this.xmlDoc.responseXML.getElementsByTagName(tagName); 
var z=temp[0];}  
 else var z=this.xmlDoc.documentElement;  
 if(z)return z;  
 alert("Incorrect XML");  
 return document.createElement("DIV");  
};  
   
   
 dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){  
 try   
{  
 var parser = new DOMParser();  
 this.xmlDoc = parser.parseFromString(xmlString,"text/xml");  
}  
 catch(e){  
 this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
 this.xmlDoc.loadXML(xmlString);  
}  
 this.onloadAction(this.mainObject);  
}  
 dtmlXMLLoaderObject.prototype.loadXML=function(filePath){  
 try   
{  
 this.xmlDoc = new XMLHttpRequest();  
 this.xmlDoc.open("GET",filePath,true);  
 this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this);  
 this.xmlDoc.send(null);  
}  
 catch(e){  
 if(document.implementation && document.implementation.createDocument)  
{  
 this.xmlDoc = document.implementation.createDocument("","",null);  
 this.xmlDoc.onload = new this.waitLoadFunction(this);  
}  
 else  
{  
 this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
 this.xmlDoc.async="true";  
 this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this);  
}  
 this.xmlDoc.load(filePath);  
}  
};  
   
   
function callerFunction(funcObject,dhtmlObject){  
 this.handler=function(e){  
 if(!e)e=event;  
 funcObject(e,dhtmlObject);  
 return true;  
};  
 return this.handler;  
};  
function getAbsoluteLeft(htmlObject){  
 var xPos = htmlObject.offsetLeft;  
 var temp = htmlObject.offsetParent;  
 {[csc:pagelist]} while(temp != null){  
 xPos+= temp.offsetLeft;  
 temp = temp.offsetParent;  
}  
 return xPos;  
}  
   
function getAbsoluteTop(htmlObject){  
 var yPos = htmlObject.offsetTop;  
 var temp = htmlObject.offsetParent;  
 while(temp != null){  
 yPos+= temp.offsetTop