function outputFolderLink(i)
{
if (this.hreference)
{
doc.write("<a style='{cursor:hand;font-size:9pt}' href='" + this.hreference +"'");
if (browserVersion > 0)
{
doc.write("onClick='javascript:clickOnFolder("+this.id+")' ondblclick='javascript:openFolder("+this.id+")'");
}
doc.write(">");
}
else
{
//doc.write("<a>") //removed by XGM
if( i > 0) //i=1, 表示节点的最终文字
{
doc.write("<a style='{cursor:hand;font-size:9pt}' id= 'leaf"+this.id+"' onClick='javascript:clickOnFolder("+this.id+")' ondblclick='javascript:openFolder("+this.id+")'>"); //modified by xgm
}
else
{
doc.write("<a style='{cursor:hand;font-size:9pt}' onClick='javascript:clickOnFolder("+this.id+")' ondblclick='javascript:openFolder("+this.id+")'>"); //modified by xgm
}
}
}function addChild(childNode)
{
this.children[this.nChildren] = childNode;
this.nChildren++;
childNode.parent = this;
return childNode;
}function folderSubEntries() //计算所有子节点数
{
var i = 0;
var se = this.nChildren; for (i=0; i < this.nChildren; i++)
{
if (this.children[i].children) //is a folder
se = se + this.children[i].subEntries();
} return se;
}
// Methods common to both objects (pseudo-inheritance)
// ********************************************************function display()
{
this.navObj.style.display = "block";
}function createEntryIndex()
{
this.id = nEntries;
indexOfEntries[nEntries] = this;
nEntries++;
}// total height of subEntries open
function totalHeight() //used with browserVersion == 2
{
var h = this.navObj.clip.height
var i = 0 if (this.isOpen) //is a folder and _is_ open
for (i=0 ; i < this.nChildren; i++)
h = h + this.children[i].totalHeight() return h
}
// Events
// *********************************************************function clickOnFolder(folderId)
{
var clicked = indexOfEntries[folderId] //if (!clicked.isOpen) //removed by xgm
clickOnNode(folderId) return; if (clicked.isSelected)
return
}function openFolder(folderId)
{
var clickedFolder = 0
var state = 0
var s
clickedFolder = indexOfEntries[folderId] if (clickedFolder.nodekind == "folder")
{
state = clickedFolder.isOpen
if ((folderId == 0)&&(state))
{
}
else
{
clickedFolder.setState(!state); //open<->close
}
} //document.cookie="currentNode=" + folderId
}function clickOnNode(folderId)
{
var clickedFolder = 0
var state = 0
var s
clickedFolder = indexOfEntries[folderId] if (clickedFolder.nodekind == "folder")
{
state = clickedFolder.isOpen
if ((folderId == 0)&&(state))
{
}
else
{
if (folderId == 0)
clickedFolder.setState(!state); //open<->close
}
} if (clickedFolder.nodekind=="node")
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'><b>"+clickedFolder.leaf.innerText+"</b></span>"
currentNode = clickedFolder
}
if (typeof(clickToNavigate)=="function")
{
clickToNavigate(clickedFolder)
}
else
{
alert("没有指定事件:clickToNavigate(node)")
};
}
else
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;font-weight: bold;color:#000000}'>"+clickedFolder.leaf.innerText+"</span>"
currentNode = clickedFolder
}
if (typeof(clickToNavigate)=="function")
{
clickToNavigate(clickedFolder);
}
else
{
alert("没有指定事件:clickToNavigate(node)")
}
}
if (clickedFolder.values[3] != exitValue)
document.cookie="currentNode=" + folderId;
else
document.cookie="currentNode=2";
}function clickOnNodeEx(folderId) //此函数用来展开树,不触发点击事件
{
var clickedFolder = 0
var state = 0
var s
//alert(folderId)
clickedFolder = indexOfEntries[folderId]
if (clickedFolder.nodekind == "folder")
{
state = clickedFolder.isOpen
clickedFolder.setState(!state) //open<->close
}
if (clickedFolder.nodekind=="node")
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'><b>"+clickedFolder.leaf.innerText+"<b></span>"
currentNode = clickedFolder
}
}
else
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'><b>"+clickedFolder.leaf.innerText+"<b></span>"
currentNode = clickedFolder
}
}
if (clickedFolder.values[3] != exitValue)
document.cookie="currentNode=" + folderId;
else
document.cookie="currentNode=2";
//document.cookie="currentNode=" + folderId
}function clickSubNode(id)
{
folder = indexOfEntries[id];
folderP = folder.parent;
if (! folderP.isOpen)
{
clickOnNode(folderP.id);
}
clickOnNode(id);
}function getLastId()
{
str = document.cookie;
str_arr = str.split(";");
for (i=0;i<str_arr.length;i++)
{
strstr=str_arr[i];
if (strstr.indexOf("currentNode=")!=-1)
break;
}
if (i==str_arr.length)
return 0;
cn = strstr.split("=")[1];
if (cn == "" || cn == "undefined" || cn == "0")
{
cn = 2;
}
return cn;
}function initializeDocument()
{
if (doc.all)
browserVersion = 1; //IE4
else
{
if (doc.layers)
browserVersion = 2; //NS4
else
browserVersion = 0; //other
} foldersTree.initialize(0, 1, "");
foldersTree.display(); if (browserVersion > 0)
{
doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+"> </layer>");
lastId = getLastId();
if (lastId == 0)
lastId = 2;
//if (lastId == 0)
//{
// clickOnNodeEx(0);
// clickOnNode(0);
// open the root folder
//}
//else
{
if (lastId >= nEntries)
{
lastId = nEntries-1;
}
clickOnNodeEx(0);
clickOnNodeEx(0);
folder = indexOfEntries[lastId].parent;
while (folder.id != 0)
{
clickOnNodeEx(folder.id);
folder = folder.parent;
}
clickOnNode(lastId);
}
}
}// Auxiliary Functions for Folder-Treee backward compatibility
// *********************************************************function gFld(description, hreference)
{
folder = new Folder(description, hreference);
return folder;
}// Global variables
// ****************USETEXTLINKS = 1
indexOfEntries = new Array
nEntries = 0
doc = document
browserVersion = 0
selectedFolder=0
currentNode=0
exitValue = 9
{
if (this.hreference)
{
doc.write("<a style='{cursor:hand;font-size:9pt}' href='" + this.hreference +"'");
if (browserVersion > 0)
{
doc.write("onClick='javascript:clickOnFolder("+this.id+")' ondblclick='javascript:openFolder("+this.id+")'");
}
doc.write(">");
}
else
{
//doc.write("<a>") //removed by XGM
if( i > 0) //i=1, 表示节点的最终文字
{
doc.write("<a style='{cursor:hand;font-size:9pt}' id= 'leaf"+this.id+"' onClick='javascript:clickOnFolder("+this.id+")' ondblclick='javascript:openFolder("+this.id+")'>"); //modified by xgm
}
else
{
doc.write("<a style='{cursor:hand;font-size:9pt}' onClick='javascript:clickOnFolder("+this.id+")' ondblclick='javascript:openFolder("+this.id+")'>"); //modified by xgm
}
}
}function addChild(childNode)
{
this.children[this.nChildren] = childNode;
this.nChildren++;
childNode.parent = this;
return childNode;
}function folderSubEntries() //计算所有子节点数
{
var i = 0;
var se = this.nChildren; for (i=0; i < this.nChildren; i++)
{
if (this.children[i].children) //is a folder
se = se + this.children[i].subEntries();
} return se;
}
// Methods common to both objects (pseudo-inheritance)
// ********************************************************function display()
{
this.navObj.style.display = "block";
}function createEntryIndex()
{
this.id = nEntries;
indexOfEntries[nEntries] = this;
nEntries++;
}// total height of subEntries open
function totalHeight() //used with browserVersion == 2
{
var h = this.navObj.clip.height
var i = 0 if (this.isOpen) //is a folder and _is_ open
for (i=0 ; i < this.nChildren; i++)
h = h + this.children[i].totalHeight() return h
}
// Events
// *********************************************************function clickOnFolder(folderId)
{
var clicked = indexOfEntries[folderId] //if (!clicked.isOpen) //removed by xgm
clickOnNode(folderId) return; if (clicked.isSelected)
return
}function openFolder(folderId)
{
var clickedFolder = 0
var state = 0
var s
clickedFolder = indexOfEntries[folderId] if (clickedFolder.nodekind == "folder")
{
state = clickedFolder.isOpen
if ((folderId == 0)&&(state))
{
}
else
{
clickedFolder.setState(!state); //open<->close
}
} //document.cookie="currentNode=" + folderId
}function clickOnNode(folderId)
{
var clickedFolder = 0
var state = 0
var s
clickedFolder = indexOfEntries[folderId] if (clickedFolder.nodekind == "folder")
{
state = clickedFolder.isOpen
if ((folderId == 0)&&(state))
{
}
else
{
if (folderId == 0)
clickedFolder.setState(!state); //open<->close
}
} if (clickedFolder.nodekind=="node")
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'><b>"+clickedFolder.leaf.innerText+"</b></span>"
currentNode = clickedFolder
}
if (typeof(clickToNavigate)=="function")
{
clickToNavigate(clickedFolder)
}
else
{
alert("没有指定事件:clickToNavigate(node)")
};
}
else
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;font-weight: bold;color:#000000}'>"+clickedFolder.leaf.innerText+"</span>"
currentNode = clickedFolder
}
if (typeof(clickToNavigate)=="function")
{
clickToNavigate(clickedFolder);
}
else
{
alert("没有指定事件:clickToNavigate(node)")
}
}
if (clickedFolder.values[3] != exitValue)
document.cookie="currentNode=" + folderId;
else
document.cookie="currentNode=2";
}function clickOnNodeEx(folderId) //此函数用来展开树,不触发点击事件
{
var clickedFolder = 0
var state = 0
var s
//alert(folderId)
clickedFolder = indexOfEntries[folderId]
if (clickedFolder.nodekind == "folder")
{
state = clickedFolder.isOpen
clickedFolder.setState(!state) //open<->close
}
if (clickedFolder.nodekind=="node")
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'><b>"+clickedFolder.leaf.innerText+"<b></span>"
currentNode = clickedFolder
}
}
else
{
if (clickedFolder != currentNode)
{
if (currentNode.leaf)
{
currentNode.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'>"+currentNode.leaf.innerText+"</span>"
}
clickedFolder.leaf.innerHTML = "<span style='{background-color: transparent;font-size:9pt;color:#000000}'><b>"+clickedFolder.leaf.innerText+"<b></span>"
currentNode = clickedFolder
}
}
if (clickedFolder.values[3] != exitValue)
document.cookie="currentNode=" + folderId;
else
document.cookie="currentNode=2";
//document.cookie="currentNode=" + folderId
}function clickSubNode(id)
{
folder = indexOfEntries[id];
folderP = folder.parent;
if (! folderP.isOpen)
{
clickOnNode(folderP.id);
}
clickOnNode(id);
}function getLastId()
{
str = document.cookie;
str_arr = str.split(";");
for (i=0;i<str_arr.length;i++)
{
strstr=str_arr[i];
if (strstr.indexOf("currentNode=")!=-1)
break;
}
if (i==str_arr.length)
return 0;
cn = strstr.split("=")[1];
if (cn == "" || cn == "undefined" || cn == "0")
{
cn = 2;
}
return cn;
}function initializeDocument()
{
if (doc.all)
browserVersion = 1; //IE4
else
{
if (doc.layers)
browserVersion = 2; //NS4
else
browserVersion = 0; //other
} foldersTree.initialize(0, 1, "");
foldersTree.display(); if (browserVersion > 0)
{
doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+"> </layer>");
lastId = getLastId();
if (lastId == 0)
lastId = 2;
//if (lastId == 0)
//{
// clickOnNodeEx(0);
// clickOnNode(0);
// open the root folder
//}
//else
{
if (lastId >= nEntries)
{
lastId = nEntries-1;
}
clickOnNodeEx(0);
clickOnNodeEx(0);
folder = indexOfEntries[lastId].parent;
while (folder.id != 0)
{
clickOnNodeEx(folder.id);
folder = folder.parent;
}
clickOnNode(lastId);
}
}
}// Auxiliary Functions for Folder-Treee backward compatibility
// *********************************************************function gFld(description, hreference)
{
folder = new Folder(description, hreference);
return folder;
}// Global variables
// ****************USETEXTLINKS = 1
indexOfEntries = new Array
nEntries = 0
doc = document
browserVersion = 0
selectedFolder=0
currentNode=0
exitValue = 9
解决方案 »
- 语句解释
- 求助 : jQuery中的一个问题
- 为什么IE的offsetTop会比top多15px,FF的offset比top多8px?
- 高手们,如何使用 JAVASCRIPT 取得 button对象,帮帮忙啊!
- 搞不定, this.obj 的继承问题, 怎么才能 this.obj.subobj 调用 this.obj
- 上传的文件,代码里指定了保存路径。但如何实现手动指定保存路径?
- 求教!!关于IE6的预览
- 关于三角函数的问题 一个三百年前已忘得一干二净的问题
- 谁给我一段用js检测浏览器并跳转到不同的页面的代码
- 求大神指导怎么让动态生成的div继承对应P标签的高度。
- dw MX中的动态菜单的问题
- 怎么在js里让button上的文字分两行显示?
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript" src="./Tree/function.js"></script>
<style>
a{
color: #000000;
text-decoration: none;
font-size:10.5pt;
}
a:active{
cursor:hand;
color: #000000;
top: 1px;
text-decoration: underline;
font-size:11pt;
}
</style>
<title>邮件左树</title>
<base target="main">
</head>
<body topmargin="30" leftmargin="0" bgcolor="#FFDA50">
<script language=javascript>
//TreeValueStr format:
//level;description;nodeflag;ImgSrc;nodeid;URL....
var TreeValueStr = "**;功能列表;0;./images/left_gnlb.gif;./images/left_gnlb.gif;-1;|"
+ "****;邮箱状态;1;./images/left_yxzk.gif;./images/left_yxzk.gif;1;resourcestatus.php|"
+ "****;收邮件;1;./images/left_sjx.gif;./images/left_sjx.gif;2;receive.php|"
+ "****;发邮件;1;./images/left_fjx.gif;./images/left_fjx.gif;3;sendmail_pre.php|"
+ "****;文件夹;0;./images/left_owjj.gif;./images/left_wjj.gif;4;listmailbox.php|"
+ "******;收件箱;1;./images/left_sjx.gif;./images/left_sjx.gif;41;listmail.php|"
+ "******;发件箱;1;./images/left_fjx.gif;./images/left_fjx.gif;42;listmail2.php?folder=INBOX.Sent|"
+ "******;草稿箱;1;./images/left_cgx.gif;./images/left_cgx.gif;43;listmail2.php?folder=INBOX.Draft|"
+ "******;垃圾箱;1;./images/left_ljx.gif;./images/left_ljx.gif;44;listmail.php?folder=INBOX.Trash";
/*
显示树型结构
入口:
TreeValueStr :按顺序排列的层次关系字符串
NSTEP :层次字符位数
*/
function ShowTree(TreeValueStr,NSTEP){
TreeNodes=TreeValueStr.split("|");
topnode=TreeNodes[0].split(";");
foldersTree=gFld("<b>"+topnode[1]+"</b>");
foldersTree.parent=foldersTree;
foldersTree.values[0]=topnode[2];
foldersTree.values[1]=topnode[3];
foldersTree.iconSrc = topnode[3];
foldersTree.iconSrcOpen = topnode[3];
foldersTree.iconSrcClose = topnode[4];
foldersTree.values[2] = topnode[6];
curLevel="";
curNode=foldersTree;
for (i=1;i<TreeNodes.length;i++)
{
Node = TreeNodes[i].split(";")
Flevel = Node[0];
Fdesc = Node[1];
FType = Node[2];
openImgSrc = Node[3];
closeImgSrc = Node[4];
URLStr = Node[6];
FID = Node[5];
n = (curLevel.length -Flevel.length) / NSTEP + 1 ; if (n<0)
n=0;
for (j=0;j<n;j++)
{
curNode=curNode.parent;
} if (FType == "0")
{
af=new Folder(Fdesc);
af.values[0]=FType;
af.values[1]=FID;
af.values[2] = URLStr;
af.values[3] = FID;
af.iconSrcOpen = openImgSrc;
af.iconSrcClose = closeImgSrc;
af.iconSrc = closeImgSrc;
af.nodekind = "folder";
curNode = curNode.addChild(af);
}
else
{
ai=new Folder(Fdesc);
ai.values[0]=FType;
ai.values[1]=FID;
ai.values[2] = URLStr;
ai.values[3] = FID;
ai.iconSrcOpen = openImgSrc;
ai.iconSrcClose = closeImgSrc;
ai.iconSrc = closeImgSrc;
ai.nodekind = "node";
curNode = curNode.addChild(ai);
}
curLevel=Flevel;
}
}//TreeValueStr格式:
//FLevel;FName;Fprsn_type;ImgSrc;NodeId...|if (TreeValueStr != "")
{
ShowTree(TreeValueStr,2);
initializeDocument();
}
else
{
document.write("<font color=red>!!!</font>")
}function clickToNavigate(node)
{
if (node.values[1]==-1)
return;
/*
if (node.values[3] == exitValue)
{
window.parent.close();
return;
}
*/
URL = node.values[2];
if (URL != "" && URL != "undefined")
{
window.parent.main.location.href = URL;
}
//window.open(URL);
}</script>
</body></html>
{
str = document.cookie;
str_arr = str.split(";");
for (i=0;i<str_arr.length;i++)
{
strstr=str_arr[i];
if (strstr.indexOf("currentNode=")!=-1)
break;
}
if (i==str_arr.length)
return 0;
cn = strstr.split("=")[1];
if (cn == "" || cn == "undefined" || cn == "0")
{
cn = 2;
}
return -1;
}