0 0

XML+ JS创建树形菜单时当href包含&符号是创建失败0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML>
 <HEAD>
 <TITLE> DSTree </TITLE>
 <META NAME="Author" CONTENT="sTarsjz@hotmail.com" >
 <style>
 body,td{font:12px verdana}
 #treeBox{background-color:#fffffa;}
 #treeBox .ec{margin:0 5 0 5;}
 #treeBox .hasItems{font-weight:bold;height:20px;padding:3 6 0 6;margin:2px;cursor:hand;color:#555555;border:1px solid #fffffa;}
 #treeBox .Items{height:20px;padding:3 6 0 6;margin:1px;cursor:hand;color:#555555;border:1px solid #fffffa;}
 </style>
 <base href="http://vip.5d.cn/star/dstree/" />
 <script>
 //code by star 20003-4-7
 var HC = "color:#990000;border:1px solid #cccccc";
 var SC = "background-color:#efefef;border:1px solid #cccccc;color:#000000;";
 var IO = null;
 function initTree(){
  var rootn = document.all.menuXML.documentElement;
  var sd = 0;
  document.onselectstart = function(){return false;}
  document.all.treeBox.appendChild(createTree(rootn,sd));
 }
 function createTree(thisn,sd){
  var nodeObj = document.createElement("span");
  var upobj = document.createElement("span");
  with(upobj){
   style.marginLeft = sd*10;
   className = thisn.hasChildNodes()?"hasItems":"Items";
   innerHTML = "<img src=expand.gif class=ec>" + thisn.getAttribute("text") +"";
   
   onmousedown = function(){
    if(event.button != 1) return;
    if(this.getAttribute("cn")){
     this.setAttribute("open",!this.getAttribute("open"));
     this.cn.style.display = this.getAttribute("open")?"inline":"none";
     this.all.tags("img")[0].src = this.getAttribute("open")?"expand.gif":"contract.gif";
    }
    if(IO){
     IO.runtimeStyle.cssText = "";
     IO.setAttribute("selected",false);
    }
    IO = this;
    this.setAttribute("selected",true);
    this.runtimeStyle.cssText = SC;
   }
   onmouseover = function(){
    if(this.getAttribute("selected"))return;
    this.runtimeStyle.cssText = HC;
   }
   onmouseout = function(){
    if(this.getAttribute("selected"))return;
    this.runtimeStyle.cssText = "";
   }
   oncontextmenu = contextMenuHandle;
   onclick = clickHandle;
  }
 
 if(thisn.getAttribute("treeId") != null){
   upobj.setAttribute("treeId",thisn.getAttribute("treeId"));
  }
  if(thisn.getAttribute("href") != null){
   upobj.setAttribute("href",thisn.getAttribute("href"));
  }
  if(thisn.getAttribute("target") != null){
   upobj.setAttribute("target",thisn.getAttribute("target"));
  }
 
 nodeObj.appendChild(upobj);
  nodeObj.insertAdjacentHTML("beforeEnd","<br>")
 
 if(thisn.hasChildNodes()){
   var i;
   var nodes = thisn.childNodes;
   var cn = document.createElement("span");
   upobj.setAttribute("cn",cn);
   if(thisn.getAttribute("open") != null){
    upobj.setAttribute("open",(thisn.getAttribute("open")=="true"));
    upobj.getAttribute("cn").style.display = upobj.getAttribute("open")?"inline":"none";
    if( !upobj.getAttribute("open"))upobj.all.tags("img")[0].src ="contract.gif";
   }
   
   for(i=0;i<nodes.length;cn.appendChild(createTree(nodes[i++],sd+1)));
   nodeObj.appendChild(cn);
  }
  else{
   upobj.all.tags("img")[0].src ="endnode.gif";
  }
  return nodeObj;
 }
 window.onload = initTree;
 </script>
 
<script>
 function clickHandle(){
  // your code here 
}
 function contextMenuHandle(){
  event.returnValue = false;
  var treeId = this.getAttribute("treeId");
  // your code here
 }
 </script>
 </HEAD>
 <BODY>
 <xml id=menuXML>
 <?xml version="1.0" encoding="GB2312"?>
 <DSTreeRoot text="根节点" open="true" href="http://" treeId="123">
  
  <DSTree text="技术论坛" open="false" treeId="">
   <DSTree text="5DMedia" open="false" href="http://" target="box" treeId="12">
    <DSTree text="网页编码" href="com.sunline.bdss.cbrc_rept.reptMgrMaintance.flow?typeId=3&role=1" target="box" treeId="4353" />
    <DSTree text="手绘" href="http://" target="box" treeId="543543" />
    <DSTree text="灌水" href="http://" target="box" treeId="543543" />
   </DSTree>
   <DSTree text="BlueIdea" open="false" href="http://" target="box" treeId="213">
    <DSTree text="DreamWeaver &amp; JS" href="http://" target="box" treeId="4353" />
    <DSTree text="FlashActionScript" href="http://" target="box" treeId="543543" />
   </DSTree>
   <DSTree text="CSDN" open="false" href="http://" target="box" treeId="432">
    <DSTree text="JS" href="http://" target="box" treeId="4353" />
    <DSTree text="XML" href="http://" target="box" treeId="543543" />
   </DSTree>
  </DSTree>
 
 <DSTree text="资源站点" open="false" treeId="">
   <DSTree text="素材屋" href="http://" target="box" treeId="12" />
   <DSTree text="桌面城市" open="false" href="http://" target="box" treeId="213">
    <DSTree text="壁纸" href="http://" target="box" treeId="4353" />
    <DSTree text="字体" href="http://" target="box" treeId="543543" />
   </DSTree>
   <DSTree text="MSDN" open="false" href="http://" target="box" treeId="432">
    <DSTree text="DHTML" href="http://" target="box" treeId="4353" />
    <DSTree text="HTC" href="http://" target="box" treeId="543543" />
    <DSTree text="XML" href="" target="box" treeId="2312" />
   </DSTree>
  </DSTree>
 
</DSTreeRoot>
 </xml>
 <table style="position:absolute;left:100;top:100;">
 <tr><td id=treeBox style="width:400px;height:200px;border:1px solid #cccccc;padding:5 3 3 5;" valign=top></td></tr>
 <tr><td style="font:10px verdana;color:#999999" align=right>by <font color=#660000>sTar</font><br> 2003-4-8</td></tr>
 </table>
 </BODY>
 </HTML>
 



其中<DSTree text="网页编码" href="com.sunline.bdss.cbrc_rept.reptMgrMaintance.flow?typeId=3&role=1" target="box" treeId="4353" />
的href中包含&字符,创建树失败,但是去掉&role=1,即不包含role时创建成功。
求解决办法。

问题补充:在线等待帮助
谢谢
2012年9月17日 19:01

1个答案 按时间排序 按投票排序

0 0

采纳的答案

xml & 是个实体引用

1、改成&amp;
com.sunline.bdss.cbrc_rept.reptMgrMaintance.flow?typeId=3&amp;role=1

2、<![CDATA[com.sunline.bdss.cbrc_rept.reptMgrMaintance.flow?typeId=3&role=1]]>

2012年9月17日 19:07

相关推荐

    XML+XSL树形菜单

    这是一个用XML+XSL生成一个灵活的树形菜单。其中用li和ul嵌套进行菜单的展示,用js控制子菜单的隐藏和显示,css来控制样式,xml文件用来存放菜单的内容。如果要生成多级菜单可以修改xml文件,将item节点下的name改为所...

    javascript+xml树形菜单

    JavaScript 和 XML 结合实现的树形菜单是一种常见的前端交互设计,尤其在早期的网页开发中较为流行。在本文中,我们将深入探讨如何使用 JavaScript 解析 XML 文件并构建一个仅适用于 Internet Explorer 的树形菜单。...

    js+jsp树形菜单

    在IT领域,尤其是在Web开发中,"js+jsp树形菜单"是一个常见的需求,用于构建交互式的、层次化的用户界面。这种技术结合了JavaScript(js)的动态特性与JavaServer Pages(jsp)的服务器端处理能力,使得网页可以动态...

    javascript操作xml生成树形菜单

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

    javascript+xml无线级树形菜单

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

    jstree+JS树形菜单合集

    压缩包中的"jstree.rar"文件很可能包含了一个名为"jstree"的JavaScript库,这是一个流行的开源库,专门用于创建交互式的树形菜单。jstree支持多种数据源,包括JSON和HTML,并提供了丰富的API和插件系统,以满足各种...

    Ajax+jsp+MySQL实现动态树形菜单

    1. **设计数据库表**:创建一个用于存储树形菜单数据的表,包括ID、父ID、名称等字段。 2. **编写JSP页面**:实现处理Ajax请求的逻辑,与MySQL数据库进行交互,获取树形菜单数据。 3. **编写JavaScript代码**:使用...

    JQuery 实现XML树形菜单

    在构建树形菜单时,XML可以作为菜单结构的数据源,包含各个菜单项的层级关系和属性信息。\n\n**直接在页面写代码实现树形菜单**\n\n这种方式是基础方法,直接在HTML页面中通过jQuery读取XML文件并解析,然后动态生成...

    自己写的JS三层树形菜单,内容基于xml

    5. `js` 文件夹:可能包含了实现树形菜单功能的JavaScript脚本。 总的来说,这个项目展示了如何结合JavaScript、XML和HTML技术实现动态生成的三层树形菜单。通过理解和学习这个项目,开发者可以掌握动态数据驱动的...

    struts简单示例+js树形菜单

    - **交互处理**:当用户在树形菜单中选择一个节点时,JS可能发送AJAX请求到服务器,Struts Action接收到请求后进行相应处理,例如加载新的数据或执行特定操作。 5. **示例应用**: - 可能是一个简单的文件管理...

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

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

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

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

    基于XML的树形菜单组件

    在构建树形菜单时,XML文件可以作为数据源,其中包含了菜单项的层次结构和相关信息,如标题、链接、图标等。通过解析XML文件,我们可以动态地生成和渲染菜单,使得菜单能够根据数据的变化而更新。 首先,我们来看一...

    Ajax+jsp+oracle实现动态树形菜单

    3. **前端展示**:JavaScript使用Ajax的响应数据构建树形菜单的DOM结构,可以使用jQuery或原生JavaScript库,如D3.js,实现动态渲染。 4. **交互逻辑**:添加事件监听器处理用户点击树节点的行为,触发新的Ajax请求...

    基于XML和ajax的树形菜单

    在构建树形菜单时,可以使用JavaScript库,如jQuery或Vanilla JS,来简化DOM操作。通常,我们会遍历XML数据,为每个菜单项创建HTML元素,然后将其添加到页面的相应位置。同时,可以通过事件监听器来处理用户的点击...

    利用javascript编写的树形菜单。

    总的来说,创建JavaScript树形菜单涉及到JavaScript基础、DOM操作、数据结构理解、事件处理、CSS样式设计和响应式布局等多个方面,是提升网页交互性的重要技术。通过实践和学习这些知识,开发者能够创建出更加丰富、...

    jsTree树形菜单

    **jsTree:JavaScript实现的树形菜单** jsTree是一款基于JavaScript的开源库,专门用于创建交互式的树形菜单。它提供了丰富的功能和多种定制选项,适用于网页中的数据组织和展示,如导航菜单、文件系统视图或者数据...

    flash 树形菜单 flash+xml (带源文件)

    本资源“Flash树形菜单 Flash+XML(带源文件)”提供了一种利用Flash技术和XML数据格式来构建动态树形菜单的方法。下面将详细解释这一技术的核心知识点: 1. **Flash**:Adobe Flash是一种创作平台,主要用于创建...

    FLASH+XML+JS仿Google地图

    标题中的“FLASH+XML+JS仿Google地图”指的是使用Adobe Flash ActionScript 2.0(AS2.0)编程语言,结合XML数据格式和JavaScript技术,实现的一个类似于Google地图的功能。这种技术通常用于创建交互式的、可自定义的...

Global site tag (gtag.js) - Google Analytics