效果图:
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 文件并构建一个仅适用于 Internet Explorer 的树形菜单。 首先,我们需要理解 JavaScript 和 XML 的基本概念。JavaScript 是一种广泛应用于客户端网页开发的...
总之,"js+jsp树形菜单"是一个融合了前端与后端技术的实践,它展示了如何利用JavaScript和JSP协同工作,为用户提供交互性强、数据驱动的菜单界面。理解并掌握这一技术,对于Web开发者来说是非常有价值的。
- **层级结构**:元素可以嵌套,形成树形结构,适合表示菜单数据。 - **命名空间(Namespaces)**:避免标签冲突,特别是在集成多个数据源时。 - **DTD或XSD验证**:定义元素的约束,确保数据的正确性。 ### 3. JSP...
在本文中,我们将探讨如何使用JavaScript操作XML文档来生成树形菜单。树形菜单是一种常见的用户界面元素,用于组织和展示层次结构的数据,如网站导航或文件系统。在这个例子中,我们将使用提供的XML数据来构建这样一...
JavaScript 和 XML 无线级树形菜单是一种常见的网页交互设计,用于组织和展示复杂的数据结构,尤其是在需要层次化数据展示的场合,例如网站导航、文件系统或者数据库结构等。本知识点将深入探讨如何利用 JavaScript ...
前端部分,`JavaScript`库如`JSTree`(压缩包中的`JSTREE`可能就是这个库的文件)提供了丰富的API和插件,使得在浏览器中生成和操作树形菜单变得简单。`JSTree`支持JSON和XML等多种数据源,与后端的Java接口完美对接...
"js"文件可能是一个JavaScript代码文件,可能包含了树形菜单的实现代码,或者是一个指向更多代码示例的快捷方式。 总结起来,这个资源合集提供了使用JavaScript和相关技术(如Struts、Hibernate、Ajax、jstree)...
总的来说,通过 JavaScript 和 PHP 的协作,可以实现一个灵活、响应式的树形菜单系统。这种系统不仅可以方便地根据数据库中的数据动态更新,还能提供良好的用户体验,让用户轻松浏览复杂的网站结构。对于网页设计师...
2. 数据结构:为了存储树形菜单的数据,通常会使用一个数组或者对象的嵌套结构,每个元素代表一个菜单项,包含文本、链接、子菜单等属性。 3. 事件处理:JavaScript的事件监听器允许我们对用户的交互行为(如点击)...
本篇将深入探讨如何利用这两者来创建一个动态的树状菜单。 首先,JSP是Java的一种视图技术,它允许开发人员在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。JSP在处理请求时,会将JSP页面转换为...
当我们需要在Web应用中实现树形菜单时,通常会结合这两个框架来完成。 树形菜单是一种常见的用户界面元素,它以层级结构展示数据,例如网站导航、文件系统或者组织架构。在Web应用中,用户可以通过点击展开或折叠...
**jQuery 实现XML树形菜单**\n\n在网页开发中,树形菜单是一种常见的交互元素,用于组织和展示层次化的信息。jQuery 是一个广泛使用的JavaScript库,它提供了丰富的API来简化DOM操作,使得实现这样的功能变得更加...
dhtmlxtree是DHTMLX Suite的一部分,是一个功能丰富的JavaScript组件,用于构建具有拖放、搜索、分页、权限控制等功能的树形菜单。`dhtmlxtree.xml`可能是用于配置dhtmlxtree节点和结构的XML文件,`dhtmlxTree`和`...
首先,我们来看一个简单的XML示例,它代表了树形菜单的结构: ```xml 主页" href="/home"> 关于我们" href="/about"> 公司历史" href="/history"/> 团队成员" href="/team"/> 产品与服务" href="/products...
JS树形菜单则是利用JavaScript语言实现的一种用户界面元素,用于展示层次结构数据,通常用在网站导航或文件目录结构展示。 这个“struts简单示例+js树形菜单”项目可能包含以下内容: 1. **Struts框架基础**: - ...
"ASP+JS树形菜单数据库版带后台 -ASP源码.zip"这个资源提供了一个完整的树形菜单系统,它基于ASP和JavaScript,且具有后台管理功能。以下将详细介绍该系统的组成部分和可能涉及的知识点。 1. ASP基础:ASP是微软的...
从压缩包子文件的文件名称列表"js树形菜单"来看,很可能包含了一个或多个JavaScript文件,这些文件可能是实现树形菜单的核心代码。开发者可以通过引入这些文件到HTML页面中,然后调用提供的函数和方法来创建和控制树...