我在页面中使用了DTREE做网站的菜单导航
主页面框架大概如下
<table>
<tr>
<td colspan="2">
<iframe id="top" src="top.asp">
</td>
</tr>
<tr>
<td><iframe id="menu" src="menu.asp"></td>
<td><iframe id="right" src="list.asp"></td>
</tr>
</table>我的menu.asp里面使用了dtree树,现在的问题是,我想在树里点击节点后,所指向的URL的TARGET为主页面的<iframe id="right">
意思就是说,点击左边的菜单,其连接内容在右边的IFRAME里面显示,我该如何控制dtree里面的target属性啊.
不知道大家懂我说的什么了没有,应该好理解吧
第一个解决,散分100,谢谢
主页面框架大概如下
<table>
<tr>
<td colspan="2">
<iframe id="top" src="top.asp">
</td>
</tr>
<tr>
<td><iframe id="menu" src="menu.asp"></td>
<td><iframe id="right" src="list.asp"></td>
</tr>
</table>我的menu.asp里面使用了dtree树,现在的问题是,我想在树里点击节点后,所指向的URL的TARGET为主页面的<iframe id="right">
意思就是说,点击左边的菜单,其连接内容在右边的IFRAME里面显示,我该如何控制dtree里面的target属性啊.
不知道大家懂我说的什么了没有,应该好理解吧
第一个解决,散分100,谢谢
这一句为树添加了一个根节点,显示名称为’My example tree’ d.add(1,0,’Node 1’,’example01.html’);
这一句在树的根节点下面添加了一个子节点。(d.add()方法的参数具体含义可参见api.html文件)
常用的:
第一个参数,表示当前节点的ID
第二个参数,表示当前节点的父节点的ID,根节点的值为 -1
第三个参数,节点要显示的文字
第四个参数,节点的Url
第五个参数,鼠标移至该节点时节点的Title
第六个参数,节点的target
第七个参数,用做节点的图标,节点没有指定图标时使用默认值
第八个参数,用做节点打开的图标,节点没有指定图标时使用默认值
第九个参数,判断节点是否打开
如果指定的是dtree本页面中的iframe就可以实现,比如
dtree.config.target='right';
这样是可以的,可是我想把dtree生成的菜单放在一个单独的htm中,如问题所示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head>
<title>Destroydrop » Javascripts » Tree</title> <link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script></head><body><h1><a href="/">Destroydrop</a> » <a href="/javascripts/">Javascripts</a> » <a href="/javascripts/tree/">Tree</a></h1><h2>Example</h2><div class="dtree"> <p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p> <script type="text/javascript">
<!-- d = new dTree('d'); d.add(0,-1,'My example tree');
d.add(1,0,'Node 1','example01.html');
d.add(2,0,'Node 2','example01.html');
d.add(3,1,'Node 1.1','example01.html');
d.add(4,0,'Node 3','example01.html');
d.add(5,3,'Node 1.1.1','example01.html');
d.add(6,5,'Node 1.1.1.1','example01.html');
d.add(7,0,'Node 4','example01.html');
d.add(8,1,'Node 1.2','example01.html');
d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif');
d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir');
d.add(11,9,'Mom\'s birthday','example01.html');
d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');
d.add(13,0,'test','example01.html','','abc','img/trash.gif'); document.write(d); //-->
</script></div>
<iframe name="abc"></iframe>
<p><a href="mailto:drop@destroydrop.com">©2002-2003 Geir Landrö</a></p></body></html>
再add的时候target参数位定了abc.而你有一个frame或iframe叫abc就会在abc那里做参数4的URL跳转了.
<iframe name="abc"></iframe>把前面的abc去掉.
我说的Dtree所在的页面
是在主面页框架中的一个iframe中加载的,现在是要将target指定为主页面的另一个框架.<table>
<tr>
<td colspan="2">
<iframe id="top" src="top.asp">
</td>
</tr>
<tr>
<td> <iframe id="menu" src="menu.asp"> </td> /*dtree是在这个menu.asp文件里*/
<td> <iframe id="right" src="list.asp"> </td>
</tr>
</table>
我说的Dtree所在的页面
是在主面页框架中的一个iframe中加载的,现在是要将target指定为主页面的另一个框架. <table>
<tr>
<td colspan="2">
<iframe id="top" src="top.asp">
</td>
</tr>
<tr>
<td> <iframe id="menu" src="menu.asp"> </td> /*dtree是在这个menu.asp文件里*/
<td> <iframe id="right" src="list.asp"> </td> /*要指定target为这个iframe*/
</tr>
</table>
<tr>
<td colspan="2">
<iframe id="top" src="top.asp">
</td>
</tr>
<tr>
<td> <iframe id="menu" name="menu" src="menu.asp"> </td> /*dtree是在这个menu.asp文件里*/
<td> <iframe id="right" name="right" src="list.asp"> </td> /*要指定target为这个iframe*/
</tr>
</table>
d.add(13,0,'test','example01.html','','right','img/trash.gif');
这样行不?
d.add(21,15 ,'菜单节点1,'javascript:opena(\'web/SysManage/Users.aspx\')');
function opena(url) {
window.parent.frames("rightBody").src = url;
}
我当然知道你说的是什么
JScript coded.add(13,0,'test','example01.html','','right','img/trash.gif');
这里的right指的就是这行脚本所在的页面下包含的id为right的iframe,可是我是这样的要求吗?我要的是指定为父级页面的另一个iframe里面,OK?
aoin的思路可以试下,换种方式,为什么不在url上想办法呢,url是可以使用javascript代替的,顶你
<script type="text/javascript" src="/OAapps/js/dtree/dtree.js"></script>
<link rel="stylesheet" href="/OAapps/js/dtree/dtree.css" type="text/css"></link>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!--实例化树对象
添加树节点
显示树-->
<body bgcolor="#C6D6FD">
<script>
var d = new dTree('d');
d.config.useStatusText=true;
d.config.closeSameLevel=true;
d.config.useCookies=false;
d.add(0,-1,'${users.userName}');
</script>
<script>
<c:forEach items="${lpw}" var="l"> //lpw: 用户所有权限集合
//id,父id,name,url,'提示','显示位置'
d.add(${l.powerId},${l.upPwoerId},'${l.powerName}','${l.linkWhere}','${l.powerName}','rightFrame');
</c:forEach>
</script>
<script>
document.write(d);
</script>
</body>为何我的树菜单之只出了顶级节点,而子节点不显示
你把你的l下的属性System.out.print()出来看看,是否存在空值?显示的是什么,是""还是Null,
如果是Null的话,要自己转一次,该成"",不然dTree函数不支持!
function OpenTarget(url){
window.parent.document.all.mainFrame.src=url ;
} d = new dTree('d');
d.add(0,-1,'所有部門',"javascript:OpenTarget('<%=path %>/admin/takeTept!queryTakeDept.action');");
顺便说说 楼主想要的效果:
楼主是说一个窗体是由三个JSP构成 。
比如:
<frameset rows="20% , 80%">
<frame src="top.jsp" name="top"/>
<framesetcols="20% , 80%">
<frame src="left.jsp" name="left">
<frame src="right.jsp" name="right">
</frameset>
left里面放的Dtree , 点击Dtree , 内容要在 right里面显示 !
那么上面所有回复,只有14楼,和 21楼正确。
好了,楼主,我们三人平分你给的分吧 。
self.parent.frames['right'].location=urlssss ;
}
/*dtree code*/
d.add(1,6,'用户,'javascript:opena('../security/userList.action')','查','','','',false) <frameset rows="20% , 80%">
<frame src="top.jsp" name="top"/>
<frameset cols="20% , 80%">
<frame src="left.jsp" name="left">
<frame src="right.jsp" name="right">
</frameset>
</frameset>
LZ 可以去 试下,,我的已经成功啦,,,,,速度给分 啊 。。 。