📄 tree.js
字号:
// JavaScript Document
/******************************************************************************
*函数意义:
menu :生成树代码 ;
itemExists :判断是否有childer;
chengstate :切换节点状态(open/close);
objExists :验证对象是否存在 ;
saveCookie :执行保存Cookie ;
getCookie :执行读取Cookie ;
checkCookieExist :验证Cookie是否存在 ;
deleteCookie :删除Cookie ;
*作 者:于恩水
*联系方式:
QQ: 46163020
msn: yuenshui@hotmail.com
Email: woaini4651@yahoo.com.cn
支持网站: www.yemaweb.com
如有问题,请与作者联系!!!
*最后修改:2004年12月28日
*修改次数:1
*制作日期:2004年7月14日
*备 注:此程序为免费使用的代码,可以由任何人用作任何合法的用途。
对于代码所造成的任何损失,作者不负任何责任。
在使用过程中不能修改和删除此注释信息,否则将追究侵犯版权的法律责任。
如果侵犯版权将被以法律允许的最大限度的起诉。
********************************************** 一下为修改 版本修改信息
2004年12月28日
v2.0.3
非叶子节点的连接也有效,此设置如果需要可以直接覆盖js文件;
增加层次线的双击事件,双击将会将该节点收缩,便于浏览大量数据
2004年12月09日
v2.0.1
修改记录的节点有时出错的bug
2004年10月15日
v2.0
更加个性化图标功能;
改善添加菜单的操作步骤;
增加全部展开,全部折叠功能;
*******************************************************************************/
treedata = new Array();
path = "";
function treemenu(tree_path,tree_name,tree_ico,url,target)
{
path = tree_path;
name = tree_name;
ico = tree_ico;
if(url!="" && url!=null)
document.write("<div><img src='"+path+ico+"' align=top border=0><a style='font-size:15px;font-weight:bold' href='"+url+"' target='"+target+"'>"+name+"</a></div>");
else
document.write("<div style='font-size:15px;font-weight:bold'><img src='"+path+ico+"' align=top border=0>"+name+"</div>");
}//end function treemenu
// 0 id 1 父id 2 名称 3 地址 4 关闭图标 5 打开图标 6 指向窗口
function add_item(tree_id,tree_prarent,tree_name,tree_close_ico,tree_open_ico,tree_url,tree_target)
{
if(tree_close_ico=="")
tree_close_ico="close.gif";
if(tree_open_ico=="")
tree_open_ico="open.gif";
// 0 id 1 父id 2 名称 3 地址 4 关闭图标 5 打开图标 6 指向窗口
treedata[treedata.length] = new Array(tree_id,tree_prarent,tree_name,tree_url,tree_close_ico,tree_open_ico,tree_target);
}//end function add_item
function menu(id) //画菜单
{
var currdata = new Array();
var i = 0;
var printstr = "<table border='0' cellspacing='0' cellpadding='0'>\n";
var listtype = "";
var menutype = "";
for(; i<treedata.length; i++)
{ //判断有无此节点
if(treedata[i][1]==id) currdata[currdata.length] = treedata[i];
}//end for
for(var i=0; i<currdata.length; i++)
{ //遍历数组,执行判断
if(itemExists(currdata[i][0]))
{ //判断是否有子节点
if(i==currdata.length-1)
{ // 最后一个
menutype = "menu3";
listtype = "list1";
}
else
{
menutype = "menu1";
listtype = "list";
}//end if
onmouseup = "chengstate('"+currdata[i][0]+"')";
}
else
{ //没有子节点
if(i==currdata.length-1)
{ // 最后一个
menutype = "file1";
}
else
{
menutype = "file";
}//end if
onmouseup = "";
}//end if
if(currdata[i][3]!="" && currdata[i][3]!=null)
{
menuname = "<a href='"+currdata[i][3]+"' target='"+currdata[i][6]+"'>"+currdata[i][2]+"</a>";
}
else
{
menuname = currdata[i][2];
}//end if
ico = "<img src='"+path+currdata[i][4]+"' id='ico"+currdata[i][0]+"' align=middle border=0>";
printstr += "<tr><td id='pr"+currdata[i][0]+"' valign=middle class="+menutype+" onMouseUp="+onmouseup+">"+ico+"<span onMouseOver='over_str(this)' valign='bottom' onMouseOut='out_str(this)' class='item'> "+menuname+" </span> </td></tr>\n";
printstr += "<tr id='item"+currdata[i][0]+"' ondblclick='chengstatedbl(\""+currdata[i][0]+"\")' style='display:none'><td class="+listtype+">"+menu(currdata[i][0])+"</td></tr>\n";
}//end for
printstr += "</table>\n";
return printstr;
}//end function menu
function itemExists(id)
{
for(var i=0;i<treedata.length;i++)
{
if(treedata[i][1]==id)return true;
}//end for
return false;
}//end function itemExists
function closeAll()
{ // 所有节点全部折叠
var len = treedata.length;
for(var i=0; i<len; i++)
{ //遍历数组,执行判断
obj = eval("pr"+treedata[i][0]);
if(obj.className == "menu2" || obj.className == "menu4")
{ //判断是否有子节点
chengstate(treedata[i][0]);
}//end if
}//end for
}//end function closeAll
function openAll()
{ // 所有节点全部展开
var len = treedata.length;
for(var i=0; i<len; i++)
{ //遍历数组,执行判断
obj = eval("pr"+treedata[i][0]);
if(obj.className == "menu1" || obj.className == "menu3")
{ //判断是否有子节点
chengstate(treedata[i][0]);
}//end if
}//end for
}//end function openAll
function over_str(obj)
{
obj.style.background = "#EEEEEE";
obj.style.border = "1px solid #999999";
}//end function over
function out_str(obj)
{
obj.style.background = "";
obj.style.border = "1px solid #FFFFFF";
}//end function out
function chengstatedbl(id)
{
chengstate(id,true);
event.cancelBubble = true;
}//end function chengstatedbl
function chengstate(menuid,save)
{ //切换节点的开放/关闭
//alert("menuid:"+menuid+"save:"+save);
menuobj = eval("item"+menuid);
obj = eval("pr"+menuid);
ico = eval("ico"+menuid);
var len = treedata.length;
for(var i=0; i<len; i++)
{
if(treedata[i][0]==menuid)
{
break;
}//end if
}//end for
if(menuobj.style.display == '')
{
menuobj.style.display = 'none';
ico.src = path+treedata[i][4];
}else{
menuobj.style.display = '';
ico.src = path+treedata[i][5];
}//end if
switch (obj.className)
{
case "menu1":
obj.className = "menu2";
break;
case "menu2":
obj.className = "menu1";
break;
case "menu3":
obj.className = "menu4";
break;
case "menu4":
obj.className = "menu3";
break;
}//end switch
}//end funciton chengstaut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -