`

一个不错的XML+Javascript树状菜单

    博客分类:
  • JS
阅读更多

 

效果图:

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树形菜单

    在本文中,我们将深入探讨如何使用 JavaScript 解析 XML 文件并构建一个仅适用于 Internet Explorer 的树形菜单。 首先,我们需要理解 JavaScript 和 XML 的基本概念。JavaScript 是一种广泛应用于客户端网页开发的...

    js+jsp树形菜单

    总之,"js+jsp树形菜单"是一个融合了前端与后端技术的实践,它展示了如何利用JavaScript和JSP协同工作,为用户提供交互性强、数据驱动的菜单界面。理解并掌握这一技术,对于Web开发者来说是非常有价值的。

    Jsp+XML树状菜单类库源码

    - **层级结构**:元素可以嵌套,形成树形结构,适合表示菜单数据。 - **命名空间(Namespaces)**:避免标签冲突,特别是在集成多个数据源时。 - **DTD或XSD验证**:定义元素的约束,确保数据的正确性。 ### 3. JSP...

    javascript操作xml生成树形菜单

    在本文中,我们将探讨如何使用JavaScript操作XML文档来生成树形菜单。树形菜单是一种常见的用户界面元素,用于组织和展示层次结构的数据,如网站导航或文件系统。在这个例子中,我们将使用提供的XML数据来构建这样一...

    javascript+xml无线级树形菜单

    JavaScript 和 XML 无线级树形菜单是一种常见的网页交互设计,用于组织和展示复杂的数据结构,尤其是在需要层次化数据展示的场合,例如网站导航、文件系统或者数据库结构等。本知识点将深入探讨如何利用 JavaScript ...

    java解析xml动态生成树形菜单结构

    前端部分,`JavaScript`库如`JSTree`(压缩包中的`JSTREE`可能就是这个库的文件)提供了丰富的API和插件,使得在浏览器中生成和操作树形菜单变得简单。`JSTree`支持JSON和XML等多种数据源,与后端的Java接口完美对接...

    jstree+JS树形菜单合集

    "js"文件可能是一个JavaScript代码文件,可能包含了树形菜单的实现代码,或者是一个指向更多代码示例的快捷方式。 总结起来,这个资源合集提供了使用JavaScript和相关技术(如Struts、Hibernate、Ajax、jstree)...

    javascript+php 树形菜单在网页设计中应用

    总的来说,通过 JavaScript 和 PHP 的协作,可以实现一个灵活、响应式的树形菜单系统。这种系统不仅可以方便地根据数据库中的数据动态更新,还能提供良好的用户体验,让用户轻松浏览复杂的网站结构。对于网页设计师...

    利用javascript编写的树形菜单。

    2. 数据结构:为了存储树形菜单的数据,通常会使用一个数组或者对象的嵌套结构,每个元素代表一个菜单项,包含文本、链接、子菜单等属性。 3. 事件处理:JavaScript的事件监听器允许我们对用户的交互行为(如点击)...

    jsp+ajax树状菜单

    本篇将深入探讨如何利用这两者来创建一个动态的树状菜单。 首先,JSP是Java的一种视图技术,它允许开发人员在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。JSP在处理请求时,会将JSP页面转换为...

    struts+hibernate树形菜单

    当我们需要在Web应用中实现树形菜单时,通常会结合这两个框架来完成。 树形菜单是一种常见的用户界面元素,它以层级结构展示数据,例如网站导航、文件系统或者组织架构。在Web应用中,用户可以通过点击展开或折叠...

    JQuery 实现XML树形菜单

    **jQuery 实现XML树形菜单**\n\n在网页开发中,树形菜单是一种常见的交互元素,用于组织和展示层次化的信息。jQuery 是一个广泛使用的JavaScript库,它提供了丰富的API来简化DOM操作,使得实现这样的功能变得更加...

    javascript树形菜单

    dhtmlxtree是DHTMLX Suite的一部分,是一个功能丰富的JavaScript组件,用于构建具有拖放、搜索、分页、权限控制等功能的树形菜单。`dhtmlxtree.xml`可能是用于配置dhtmlxtree节点和结构的XML文件,`dhtmlxTree`和`...

    基于XML的树形菜单组件

    首先,我们来看一个简单的XML示例,它代表了树形菜单的结构: ```xml 主页" href="/home"&gt; 关于我们" href="/about"&gt; 公司历史" href="/history"/&gt; 团队成员" href="/team"/&gt; 产品与服务" href="/products...

    struts简单示例+js树形菜单

    JS树形菜单则是利用JavaScript语言实现的一种用户界面元素,用于展示层次结构数据,通常用在网站导航或文件目录结构展示。 这个“struts简单示例+js树形菜单”项目可能包含以下内容: 1. **Struts框架基础**: - ...

    ASP+JS树形菜单数据库版带后台 -ASP源码.zip

    "ASP+JS树形菜单数据库版带后台 -ASP源码.zip"这个资源提供了一个完整的树形菜单系统,它基于ASP和JavaScript,且具有后台管理功能。以下将详细介绍该系统的组成部分和可能涉及的知识点。 1. ASP基础:ASP是微软的...

    (推荐)超级漂亮的JS树形菜单

    从压缩包子文件的文件名称列表"js树形菜单"来看,很可能包含了一个或多个JavaScript文件,这些文件可能是实现树形菜单的核心代码。开发者可以通过引入这些文件到HTML页面中,然后调用提供的函数和方法来创建和控制树...

Global site tag (gtag.js) - Google Analytics