一个以Javascript+xml的树型列表
热 ★★★★
一个以Javascript+xml的树型列表
作者:闵涛 文章来源:闵涛的学习笔记 点击数:1992 更新时间:2009/4/23 11:33:02
这是在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; 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; temp = temp.offsetParent; } return yPos; } function convertStringToBoolean(inputString){if(typeof(inputString)=="string")inputString= inputString.toLowerCase(); switch(inputString){ case "1": case "true": case "yes": case "y": case 1: case true: return true; break; default: return false; } } function getUrlSymbol(str){ if(str.indexOf("?")!=-1) return "&" else return "?" } function dhtmlDragAndDropObject(){ this.lastLanding=0; this.dragNode=0; this.dragStartNode=0; this.dragStartObject=0; this.tempDOMU=null; this.tempDOMM=null; this.waitDrag=0; if(window.dhtmlDragAndDrop)return window.dhtmlDragAndDrop; window.dhtmlDragAndDrop=this; return this; }; dhtmlDragAndDropObject.prototype.removeDraggableItem=function(htmlNode){ htmlNode.onmousedown=null; htmlNode.dragStarter=null; htmlNode.dragLanding=null; } dhtmlDragAndDropObject.prototype.addDraggableItem=function(htmlNode,dhtmlObject){ htmlNode.onmousedown=this.preCreateDragCopy; htmlNode.dragStarter=dhtmlObject; this.addDragLanding(htmlNode,dhtmlObject); } dhtmlDragAndDropObject.prototype.addDragLanding=function(htmlNode,dhtmlObject){ htmlNode.dragLanding=dhtmlObject; } dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(e) { if(window.dhtmlDragAndDrop.waitDrag){ window.dhtmlDragAndDrop.waitDrag=0; document.body.onmouseup=window.dhtmlDragAndDrop.tempDOMU; document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM; return; } window.dhtmlDragAndDrop.waitDrag=1; window.dhtmlDragAndDrop.tempDOMU=document.body.onmouseup; window.dhtmlDragAndDrop.tempDOMM=document.body.onmousemove; window.dhtmlDragAndDrop.dragStartNode=this; window.dhtmlDragAndDrop.dragStartObject=this.dragStarter; document.body.onmouseup=window.dhtmlDragAndDrop.preCreateDragCopy; document.body.onmousemove=window.dhtmlDragAndDrop.callDrag; }; dhtmlDragAndDropObject.prototype.callDrag=function(e){ if(!e)e=window.event; dragger=window.dhtmlDragAndDrop; if(!dragger.dragNode){ dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode); document.body.appendChild(dragger.dragNode); document.body.onmouseup=dragger.stopDrag; dragger.waitDrag=0; } dragger.dragNode.style.left=e.clientX+15+document.body.scrollLeft;dragger.dragNode.style.top= e.clientY+3+document.body.scrollTop; if(!e.srcElement)var z=e.target;else z=e.srcElement; dragger.checkLanding(z); } dhtmlDragAndDropObject.prototype.checkLanding=function(htmlObject){ if(htmlObject.dragLanding){if(this.lastLanding)this.lastLanding.dragLanding._dragOut(this.lastLanding); this.lastLanding=htmlObject;this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding,this.dragStartNode);} else{ if(htmlObject.tagName!="BODY")this.checkLanding(htmlObject.parentNode); else{if(this.lastLanding)this.lastLanding.dragLanding._dragOut(this.lastLanding);this.lastLanding=0;} } } dhtmlDragAndDropObject.prototype.stopDrag=function(e){ dragger=window.dhtmlDragAndDrop; if(dragger.lastLanding)dragger.lastLanding.dragLanding._drag(dragger.dragStartNode,dragger.dragStartObject,dragger.lastLanding); dragger.lastLanding=0; dragger.dragNode.parentNode.removeChild(dragger.dragNode); dragger.dragNode=0; dragger.dragStartNode=0; dragger.dragStartObject=0; document.body.onmouseup=dragger.tempDOMU; document.body.onmousemove=dragger.tempDOMM; dragger.tempDOMU=null; dragger.tempDOMM=null; dragger.waitDrag=0; } </script> <!-- dhtmlXTree.js --> <script> function dhtmlXTreeObject(htmlObject,width,height,rootId){ if(typeof(htmlObject)!="object") this.parentObject=document.getElementById(htmlObject); else this.parentObject=htmlObject; this.mytype="tree"; this.width=width; this.height=height; this.rootId=rootId; this.style_pointer="pointer"; if(navigator.appName == 'Microsoft Internet Explorer')this.style_pointer="hand"; this.hfMode=0; this.nodeCut=0; this.XMLsource=0; this.XMLloadingWarning=0; this._globalIdStorage=new Array(); this.globalNodeStorage=new Array(); this._globalIdStorageSize=0; this.treeLinesOn=true; this.checkFuncHandler=0; this.openFuncHandler=0; this.dblclickFuncHandler=0; this.tscheck=false; this.timgen=true; this.imPath="treeGfx/"; this.checkArray=new Array("iconUnCheckAll.gif","iconCheckAll.gif","iconCheckGray.gif"); this.lineArray=new Array("line2.gif","line3.gif","line4.gif","blank.gif","blank.gif"); this.minusArray=new Array("minus2.gif","minus3.gif","minus4.gif","minus.gif","minus5.gif"); this.plusArray=new Array("plus2.gif","plus3.gif","plus4.gif","plus.gif","plus5.gif"); this.imageArray=new Array("leaf.gif","folderOpen.gif","folderClosed.gif"); this.cutImg= new Array(0,0,0); this.cutImage="but_cut.gif"; this.dragger= new dhtmlDragAndDropObject(); this.htmlNode=new dhtmlXTreeItemObject(this.rootId,"",0,this); this.htmlNode.htmlNode.childNodes[0].childNodes[0].style.display="none"; this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[0].className="hiddenRow"; this.allTree=this._createSelf(); this.a[1] [2] [3] [4] 下一页
[Web开发 ]XML与HTML在语法上的主要区别详解 [系统软件 ]如何让Expat支持中文XML [VB.NET程序 ]vb.net 与 XML 的操作 [VB.NET程序 ]vb.net读写xml(2)--实现datagrid与xml的沟通(原创… [VB.NET程序 ]vb.net 读写xml方法(1) [VB.NET程序 ][VB.NET+XML]完成简单程序配置 [VB.NET程序 ]使用Visual Basic操纵XML文档 [VB.NET程序 ]XML 简单接口 (SAX2)用Visual Basic 实现的示例 [Delphi程序 ]Delphi 6 XML映象工具 [Delphi程序 ]Delphi 6 XML数据绑定
教程录入:mintao 责任编辑:mintao
上一篇教程: 推荐几个入门级的JS特效代码 下一篇教程: 时钟广告跳转状态栏等JS代码
【字体:小 大 】【发表评论 】【加入收藏 】【告诉好友 】【打印此文 】【关闭窗口 】
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
网友评论: (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
同类栏目
赞助链接
500 - 内部服务器错误。
500 - 内部服务器错误。
您查找的资源存在问题,因而无法显示。