dojo动态树加到frames总是报js错误【function "treeNodeSelected" does not exist on "[object]"】
Tomcat 5.5
struts2.1.6
我根据网上的例子写了一个动态Ajax树,这棵树放在leftFrame里。点一个树上的节点时,会刷新rightFrame显示相应的东西。 每次重新启动tomcat然后访问页面的时候,树节点的展开/收起都没有问题,但是点击某个节点以后,再点击一个节点就会报js错:
消息: function "treeNodeSelected" does not exist on "[object]"
行: 96
字符: 1
代码: 0
URI: http://localhost:8080/portal/struts/dojo/struts_dojo.js
frame结构如下:
<frameset id="outframe" name="outframe" rows="88,0,*" cols="*" framespacing="0" frameborder="0" border="0" >
<frame src="top.do" name="topframe" scrolling="no" id="topframe" TOPMARGIN="1" MARGINHEIGHT="1"/>
<frameset id="allframe" name="allframe" rows="*" cols="18%,6,*" framespacing="0" frameborder="0" border="0" >
<frame src="<left.do/>" name="listframe" scrolling="auto" id="listframe" />
<frame src="mid.jsp" name="leftBarFrame" scrolling="no" id="leftBarFrame" noresize="noresize" LEFTMARGIN="0" MARGINWIDTH="0" />
<frame src="right.do" name="showframe" scrolling="auto" resize="no" id="showframe"/>
</frameset>
<frame src="HomePage.do" name="homeframe" scrolling="no" id="homeframe" TOPMARGIN="1" MARGINHEIGHT="1"/>
</frameset>
其中listframe显示树,showframe显示点击数节点后要显示的内容。
页面的代码如下(userTree.jsp):
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="dojo" uri="/struts-dojo-tags"%>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
%>
<%@ include file="/include/check.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<dojo:head />
<script type="text/javascript">
dojo.require("dojo.lang.*");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.Tree");
dojo.require("dojo.widget.TreeRPCController");
</script>
<style type="text/css">
a:visited{
color:#12035C;
}
a:link{
color:#12035C;
}
</style>
<script type="text/javascript">
function treeNodeSelected(arg) {
if(""+arg.source.widgetId!="undefined"){
var url = "user/showMember.do?id=" + arg.source.widgetId;
top.showframe.location = url; //这句去掉就不报错了
alert("widgetId: "+arg.source.widgetId);
}
}
dojo.addOnLoad(function() {
var t = dojo.widget.byId('memberAndUsers');
var s = t.selector;
dojo.event.connect(s, 'select', 'treeNodeSelected');
});
function refresh()
{
location.reload();
}
</script>
<body bgcolor="white">
<dojo:div
cssStyle="position:absolute; border: 0px solid black; background-color:white;">
<a href="#"><img border="0" width="25" height="25" src="images/refresh.png" onclick="refresh()" alt="刷新" title="刷新"/></a>
<div dojoType="TreeRPCController" widgetId="treeController"
DNDcontroller="create" RPCUrl="<s:url />"></div>
<div dojoType="Tree" widgetId="memberAndUsers" toggle="fade"
controller="treeController">
<div dojoType="TreeNode" title="<s:property value='root.title' />"
widgetId='<s:property value="root.id" />'
isFolder='<s:property value="root.children.length > 0" />'
objectId='<s:property value="root.id" />'></div>
</div>
</dojo:div>
</body>
</html>
相关推荐
三行JS代码禁用Chrome图片拖拽的解决方案
HTML5的draggable属性控制着元素的可拖拽状态,不同浏览器对其实现存在差异。在Chrome中,图片元素默认允许拖拽,这可能导致用户体验问题。通过原生JavaScript的事件传播机制,可以优雅地阻止图片拖拽行为。该技术方案仅需三行代码,不依赖第三方库,兼容最新Chrome版本,适用于图片展示类网页开发。理解事件冒泡与捕获机制是关键,通过监听dragstart事件并阻止默认行为,即可实现轻量级的图片拖拽禁用功能。这种方案在电商图集、在线相册等需要保护图片版权的场景中具有重要应用价值。
TC8测试TCP-UNACCEPTABLE-04/006
TC8测试TCP-UNACCEPTABLE-04/006
PSIM-串联谐振半桥LLC开关电源+PFM变频闭环控制【仿真+计算书+参考文献】
内容概要:本文档系统性地整合了电力电子与控制系统仿真领域的丰富资源,聚焦于基于PSIM和Simulink平台的串联谐振半桥LLC开关电源建模与仿真,深入探讨PFM变频闭环控制策略的设计与实现。内容涵盖LLC谐振变换器的工作原理、关键参数设计、开环与闭环仿真模型构建、软开关技术(ZVS/ZCS)、恒压恒流双竞争控制机制以及调频控制等核心技术,配套提供完整的仿真文件、计算书和参考文献,有助于深入理解高频开关电源系统的动态响应特性与稳定性分析方法。此外,文档还汇集了大量拓展性仿真资源,涉及双向DC-DC变换器、PWM整流器、PFC电路、储能系统、微电网优化、DAB变换器、并网逆变器等多个方向,构成一套完整的科研与工程实践参考资料体系。; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校本科生、研究生,以及从事开关电源设计、新能源系统开发、电力变换器研发等工作的工程技术人员。; 使用场景及目标:①深入学习LLC谐振变换器的拓扑结构与闭环控制原理;②掌握PSIM/Simulink在电力电子系统中的高精度建模与仿真技能;③为科研项目、学位论文或产品开发提供可复用的技术方案与代码基础;④深化对PFM控制、软启动过程、ZVS/ZCS实现机制及系统稳定性的理解; 阅读建议:建议结合文档中提供的仿真模型与计算书进行同步操作,优先剖析主电路拓扑与控制逻辑架构,再逐步开展参数调节与仿真验证实验,同时可参考所列相关资源拓展技术视野,提升综合设计能力。
【MATLAB例程,无人机避障7】基于RRT*与人工势场法(RRT*+APF)的多无人机二维动态路径规划与避障
程序采用快速扩展随机树星算法(RRT*)与人工势场法(APF),实现四架无人机在二维动态障碍环境中的路径规划与协同避碰。通过RRT*的邻域选父和节点重连优化全局参考路径,利用APF进行局部动态避障,绘制全局路径、实际轨迹、安全净间隙、速度与加速度及航程等图像,对比RRT+APF与RRT*+APF的规划效果。无人机起终点、障碍物分布、采样次数及运动约束均可自行调整。
Windows开发工具环境管理:Git、Node.js、Python多版本与PATH冲突排查 - 配套实验资源
本资源是《Windows开发工具环境管理:Git、Node.js、Python多版本与PATH冲突排查》的配套实验工具,适用于 Windows PowerShell 5.1 和 PowerShell 7,帮助开发者排查 Git、Node.js、Python、Codex 等工具的多版本共存、PATH 配置异常及命令优先级冲突问题。 **资源包含两个 PowerShell 脚本:** 1. **Get-ToolchainInventory.ps1**:只读环境诊断工具,可列出开发工具的命令候选路径,检查 PATH 目录、重复条目及无效路径。不执行开发工具,也不修改系统配置。 2. **Invoke-PathPrecedenceLab.ps1**:PATH 优先级演示工具,在系统临时目录中生成测试命令,通过临时调整当前进程的 PATH,直观展示 Windows 命令查找与优先级规则。实验结束后自动恢复 PATH 并清理自身创建的临时文件。 **资源特点:** - 兼容 Windows PowerShell 5.1 和 PowerShell 7。 - 支持开发工具路径盘点与 PATH 冲突分析。 - 提供可重复的命令优先级实验。 - 不修改注册表、系统级或用户级环境变量。 - 不卸载软件、不安装依赖、不执行包管理器。 - 适合 Windows 开发环境排查、PowerShell 学习与技术教学。 **使用说明:** 下载后建议先审查脚本,再按照配套文章中的 PowerShell 命令运行。脚本已完成静态检查与打包,尚未经过 Windows 实机执行验证。 **安全提示:** 诊断结果可能包含个人或组织目录信息,公开分享前请脱敏。若受到 PowerShell 执行策略限制,应采用符合环境安全要求的授权方式运行,不建议全局关闭安全限制。



