tree.jsvar tdentity;function initialize() {
  var xmlDoc
  var xslDoc  xmlDoc = new ActiveXObject('Microsoft.XMLDOM')
  xmlDoc.async = false;  xslDoc = new ActiveXObject('Microsoft.XMLDOM')
  xslDoc.async = false;  xmlDoc.load("Controls/DecentTreeView.xml")
  xslDoc.load("Controls/DecentTreeView.xslt")  folderTree.innerHTML = xmlDoc.documentElement.transformNode(xslDoc)
  
}function changeColor(newentity)
{
if (tdentity != null)
{
tdentity.style.backgroundColor=document.bgColor;
}

newentity.style.backgroundColor = "#66ccff";
tdentity = newentity;
}//获取当前URL的主目录
function getDocumentUrl()
{
var url = document.URL;
url = url.substring(url.indexOf("//")+1,url.indexOf("/",url.indexOf("//")+2));
return url;
}//实现CheckBox所有子节点根据父选中情况改变的函数
//传入的参量为obj = DIV, value=this.checked(CheckBox的选中情况)
function checkchild(obj,value)
{
//DIV的第一个子节点为<TABLE>,包函在TABLE中的CheckBox的name为checkbox
if (obj.firstChild.all.checkbox != null)
obj.firstChild.all.checkbox.checked = value;



var mychild = obj.children;

var i = 1;//关键,这里每次递归调用时会重新初始化一次

for (i = 1 ; i < mychild.length; i++)
{
checkchild(mychild(i),value);
}
}//实现反向选取
function checkroot(obj,value)
{

if (obj.parentNode == null) //父为空了,直接返回
return;

if (obj.parentNode.tagName == "FORM") //节点到了<FORM>级则直接返回
return;

if (obj.parentNode.tagName == "SPAN")//节点到了<SPAN>级认为不再有父节点
return;

if (obj.parentNode.firstChild.all.checkbox != null){
obj.parentNode.firstChild.all.checkbox.checked = ischildselect(obj.parentNode);
}

checkroot(obj.parentNode,value);
}//判断是否所有的子被选中或,没有
function ischildselect(obj)
{
if (obj.children == null) return true;
if (obj.children.length == 0) return true;
for (i = 1 ; i < obj.children.length; i++)
{
if (obj.children(i).firstChild != null) {
if (obj.children(i).firstChild.all.checkbox != null) {

if (!obj.children(i).firstChild.all.checkbox.checked)
{
return false;
}
}
}
}
return true;
}//关闭节点
function clickOnEntity(entity) {
  if(entity.open == "false") {
    expand(entity, true)
  }
  else {
    collapse(entity)
  }
  window.event.cancelBubble = true
}//展开节点
function expand(entity) {
  var oImage  oImage = entity.childNodes(0).all["image"]
  oImage.src = entity.imageOpen  for(i=0; i < entity.childNodes.length; i++) {
    if(entity.childNodes(i).tagName == "DIV") {
      entity.childNodes(i).style.display = "block"
    }
  }
  entity.open = "true"
}//关闭所有子节点
function collapse(entity) {
  var oImage
  var i  oImage = entity.childNodes(0).all["image"]
  oImage.src = entity.image  // collapse and hide children
  for(i=0; i < entity.childNodes.length; i++) {
      if(entity.childNodes(i).tagName == "DIV") {
        if(entity.id != "folderTree") entity.childNodes(i).style.display = "none"
        collapse(entity.childNodes(i))
      }
    }
  entity.open = "false"
}//展开所有了节点
function expandAll(entity) {
  var oImage
  var i  expand(entity, false)  // expand children
  for(i=0; i < entity.childNodes.length; i++) {
    if(entity.childNodes(i).tagName == "DIV") {
      expandAll(entity.childNodes(i))
    }
  }
}function setFrameUrl(url)
{
document.all.myframe.src = url;

}function setFrameUrl(frame,url)
{
frame.src = url;
}function todoNone(){}
-------------------------------------------------------------------------
test.html
<HTML>
<HEAD>
<title>Test</title>
<script language="javascript" src="tree.js"></script>
</HEAD>
<body onload="initialize()">
<form id="Test" method="post" runat="server">
<table>
<tr>
<td vAlign="top">
<div id="folderTree" style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; OVERFLOW: auto; BORDER-LEFT: black 1px solid; WIDTH: 150px; BORDER-BOTTOM: black 1px solid; HEIGHT: 300px"></div>
</td>
<td><iframe id="myframe" width="300" height="300"></iframe>
</td>
</tr>
</table>
</form>
</body>
</HTML>