效果图:
var ImgArr = new Array();
var level = 0;
var vid = 0;
var HTML = "";
var img = "";
function getSubject() {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load("Work.xml");
if (xmlDoc.parseError.errorCode != 0) {
alert(xmlDoc.parseError.reason);
return;
} else {
var nodes = xmlDoc.documentElement.childNodes;
for (var i = 0; i < nodes.length; i++) {
img = "";
if (nodes(i).nodeName == "tree") {
vid++;
if (i == nodes.length - 1) {
ImgArr[level] = "<img src='images/L+.gif' + vid + "' " + vid + "')>";
img = ImgArr[level];
readTree(nodes(i), true);
} else {
ImgArr[level] = "<img src='images/T+.gif' + vid + "' " + vid + "')>";
img = ImgArr[level];
readTree(nodes(i), false);
}
} else {
if (nodes(i).nodeName == "node") {
img = "<img src='images/T.gif'>";
if (i == nodes.length - 1) {
img = "<img src='images/L.gif'>";
}
readNode(nodes(i));
}
}
}
}
delete (xmlDoc);
window.left.innerHTML = HTML;
return;
}
function readTree(cI, sp) {
var nodes = cI.childNodes;
var menuHTML = img;
menuHTML += "<img src='images/";
menuHTML += cI.selectNodes("image")(0).text;
menuHTML += "'>";
menuHTML += "<a href='";
if (cI.selectNodes("link")(0).text != "") {
menuHTML += cI.selectNodes("link")(0).text;
} else {
menuHTML += "#";
}
if (cI.selectNodes("target")(0).text != "") {
menuHTML += "' target='" + cI.selectNodes("target")(0).text;
}
menuHTML += "' " + vid + "')";
menuHTML += " title='";
menuHTML += cI.selectNodes("title")(0).text;
menuHTML += "'>";
menuHTML += cI.selectNodes("text")(0).text;
menuHTML += "</a><br>\n";
HTML += menuHTML;
HTML += "<div + vid + "' style='display:none'>\n";
ImgArr[level] = "<img src='images/i.gif'>";
if (sp) {
ImgArr[level] = "<img src='images/white.gif'>";
}
for (var i = 0; i < nodes.length; i++) {
level++;
ImgArr[level] = "<img src='images/i.gif'>\n";
if (sp) {
ImgArr[level] = "<img src='images/white.gif'>\n";
}
img = "";
var tempImg = "";
for (var j = 0; j < level; j++) {
tempImg += ImgArr[j];
}
img = tempImg;
if (nodes(i).nodeName == "tree") {
vid++;
if (i == nodes.length - 1) {
img += "<img src='images/L+.gif' + vid + "' " + vid + "')>";
readTree(nodes(i), true);
} else {
img += "<img src='images/T+.gif' + vid + "' " + vid + "')>";
readTree(nodes(i), false);
}
img = "";
} else {
if (nodes(i).nodeName == "node") {
if (i == nodes.length - 1) {
img += "<img src='images/L.gif'>";
} else {
img += "<img src='images/T.gif'>";
}
readNode(nodes(i));
}
}
level--;
}
HTML += "</div>\n";
return;
}
function readNode(cI) {
//alert("ok");
var nodeHTML = img;
nodeHTML += "<img src='images/";
nodeHTML += cI.selectNodes("image")(0).text;
nodeHTML += "'>";
nodeHTML += "<a href='";
nodeHTML += cI.selectNodes("link")(0).text;
if (cI.selectNodes("target")(0).text != "") {
nodeHTML += "' target='" + cI.selectNodes("target")(0).text;
}
nodeHTML += "' title='";
nodeHTML += cI.selectNodes("title")(0).text;
nodeHTML += "'>";
nodeHTML += cI.selectNodes("text")(0).text;
nodeHTML += "</a><br>\n";
HTML += nodeHTML;
return;
}
function divshow(vid) {
if (document.all["div" + vid].style.display == "none") {
document.all["div" + vid].style.display = "";
document.all["f" + vid].src = document.all["f" + vid].src.replace("+", "-");
} else {
document.all["div" + vid].style.display = "none";
document.all["f" + vid].src = document.all["f" + vid].src.replace("-", "+");
}
return;
}
<?xml version="1.0" encoding="gb2312"?>
<treeview>
<tree >
<text>通道管理</text>
<target>workMain</target>
<title>通道管理</title>
<link>smsc.list</link>
<image>tongdao.gif</image>
<node>
<text>通道列表</text>
<target>workMain</target>
<title>所有通道</title>
<link>smsc.list</link>
<image>list.gif</image>
</node>
<node>
<text>添加通道</text>
<target>workMain</target>
<title>添加通道</title>
<link>smsc.addtd</link>
<image>html.gif</image>
</node>
</tree>
<tree >
<text>参数管理</text>
<target>workMain</target>
<title>参数管理</title>
<link>smsc.manager</link>
<image>sys.gif</image>
<node>
<text>系统设置</text>
<target>workMain</target>
<title>系统设置</title>
<link>smsc.sysset</link>
<image>html.gif</image>
</node>
<node>
<text>通道设置</text>
<target>workMain</target>
<title>通道设置</title>
<link>smsc.tdset</link>
<image>html.gif</image>
</node>
</tree>
<node>
<text>权限管理</text>
<target>workMain</target>
<title>设置用户访问权限</title>
<link>smsc.userAccess</link>
<image>set.gif</image>
</node>
<tree >
<text>插件管理</text>
<target>workMain</target>
<title>插件管理</title>
<link>smsc.plugManager</link>
<image>pulg.gif</image>
<node>
<text>编辑</text>
<target>workMain</target>
<title>编辑</title>
<link>smsc.plugE</link>
<image>html.gif</image>
</node>
<node>
<text>插件平台</text>
<target>workMain</target>
<title>插件平台</title>
<link>smsc.plugL</link>
<image>html.gif</image>
</node>
</tree>
<tree >
<text>ctc021</text>
<target>workMain</target>
<title>ctc021管理</title>
<link>smsc.sysset</link>
<image>folder.gif</image>
<node>
<text>ctc021</text>
<target>workMain</target>
<title>ctc021</title>
<link>smsc.main?name=ctc025</link>
<image>html.gif</image>
</node>
<node>
<text>ctc021日志</text>
<target>workMain</target>
<title>ctc021日志</title>
<link>smsc.log?name=ctc021</link>
<image>html.gif</image>
</node>
</tree>
<tree >
<text>cnc025</text>
<target>workMain</target>
<title>cnc025管理</title>
<link>smsc.sysset</link>
<image>folder.gif</image>
<node>
<text>cnc025</text>
<target>workMain</target>
<title>cnc025</title>
<link>smsc.main?name=ctc025</link>
<image>html.gif</image>
</node>
<node>
<text>cnc025日志</text>
<target>workMain</target>
<title>cnc025日志</title>
<link>smsc.log?name=ctc025</link>
<image>html.gif</image>
</node>
</tree>
<node>
<text>修改管理员密码</text>
<target>workMain</target>
<title>修改管理员登录系统密码</title>
<link>smsc.resetPassword</link>
<image>set.gif</image>
</node>
</treeview>
相关推荐
javascript+xml树形菜单,因目前只会用IE加载和解析XML,故只有IE能用
javascript操作xml生成树形菜单 javascript操作xml生成树形菜单 javascript操作xml生成树形菜单
javascript+xml无线级树形菜单
java解析xml动态生成树形菜单结构 可以满足无限层的树形菜单,该工程的所有代码,都有详细的实例。 以及js控制树形菜单的伸展和收缩,以及全选
全部代码来源于我近期的一个项目,客户要求论坛必须有侧边导航栏,我于是想到用框架来实现。"mainFrame"是主显框架的ID及name属性。读者可灵活修改。(作者注[2011年6月14日]:这是我三年前写的代码,代码质量比较差...
JavaScript XML实现ajax树形展开菜单,实现如图所示的树状菜单,这种菜单在一些后台管理中被广泛应用。本示例中的Tree菜单使用XML作为数据存储对象,XML比数据库有着更快的存储速度。友情提示,本代码貌似在目前的IE...
PHP ajax Tree树形菜单,在PHP中快速实现一个目录列表类型的树形菜单,十分简洁漂亮,在PHP中应用广泛,本菜单基于Javascript和 XML技术实现。 演示地址:...
Javascript解析服务器端XML文件,成为一个树形菜单,自己工作中需要写的,想和同志们一起探讨探讨
XTREE是一个基于AJAX实现的树形菜单。它的原理就是每次都只加载当前结点下的所有结点,而对开发人员来说,就是只需要按一定的格式,生成一段XML代码。XTREE可以自己定制每个结点的ICON和链接。XTREE是基于对象的,...
.
.
PHP ajax Tree树形菜单,在PHP中快速实现一个目录列表类型的树形菜单,十分简洁漂亮,在PHP中应用广泛,本菜单基于Javascript和 XML技术实现
PHP ajax Tree树形菜单,在PHP中快速实现一个目录列表类型的树形菜单,十分简洁漂亮,在PHP中应用广泛,本菜单基于JavaScript和XML技术实现。
javascript完全自学手册 目 录 第1篇 JavaScript基础篇 第1章 JavaScript简介 1 1.1 JavaScript概述 1 1.1.1 什么是JavaScript 1 1.1.2 JavaScript的基本特点 2 1.1.3 常用的Web开发语言 3 ...14.6.1 树状菜单 465
动态构造树形结构 通过ajax读取从aspx传过来的xml格式数据 构造树形菜单
目录 第1篇 JavaScript基础篇 第1章 JavaScript简介 1.1 JavaScript概述 1.1.1 什么是JavaScript 1.1.2 JavaScfipt的基本特点 ...14.6.1 树状菜单 14.6.2 折叠菜单 14.6.3 滑动菜单 14.6.4 右键菜单 ……
动态生成树形菜单,每个节点都有各自的URL地址,单击不同的节点框架页的右侧跳转到该节点所对应的URL。(框架页说明:左边是树形菜单;右边是显示页面相应信息的页面) 分析: dhtmlXTree提供了很好的添加,删除...
实例355 用JavaScript控制XML文档的分页显示 565 实例356 通过操作XML数据岛实现添加、删除留言信息 567 第15章 JavaScript与ASP结合 573 15.1 弹出窗口/对话框控制 574 实例357 关闭弹出窗口时刷新父窗口...
实例054 树状导航菜单 91 第2章 表单及表单元素 95 2.1 文本框/编辑框/隐藏域组件 96 实例055 获取文本框/编辑框/隐藏域的值 96 实例056 自动计算金额 97 实例057 设置文本框的只读属性 98 实例058 限制多行文本域...
1、jQuery是一个快速的,简洁的,轻量级的...7、成熟插件非常丰富,除了jQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、Grid,树形菜单、图像特效以及ajax上传等。