求助 Dtree 调用JS函数,参数传递时的中文乱码问题

seng3018 2010-01-26 02:13:44
用dtree动态生成了一个简单树

下面是jsp内的代码



function onChange(id,name)
{
var cname = document.getElementById("cn").value;
test.location.replace('resource.do?pathId='+id+"&cusName="+cname+"&pathName="+name);
}

<script type="text/javascript">

d = new dTree('d');

d.add(0,-1,'${cusName}');
<%
List<Path> menuList = (List)request.getSession().getAttribute("menuList");
for (Path path:menuList){%>
d.add(<%=path.getId()%>,0,'<%=path.getPathName()%>','javaScript:onChange(<%=path.getId()%>,<%=path.getPathName()%>);','','','img/folder.gif','img/folderopen.gif');
<%}%>
document.write(d);
</script>



<%=path.getPathName()%> 是从服务器获取的中文 在FF里 移动到树节点 左下角的提示信息能正常显示 如 :javaScript:onChange(1,图片)

但是点击树节点后 JS函数并不执行 FF报错信息如下:


\u56FE\u7247 is not defined
javascript:onChange(1,%E5%9B%BE%E7%89%87);()




上面是unicode编码 不知道为什么会自动转换为unicode编码 用encodeUrl unicodeToGb2312 JS函数转换都不行

而且dtree树生成的那段代码是不能添加其他JS语句的,否则树是没法生成的。

请教各位前辈 在这种情况下有没有方法能正常传递中文参数的?



...全文
397 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sing4j 2010-01-26
  • 打赏
  • 举报
回复
seng3018 2010-01-26
  • 打赏
  • 举报
回复
1 在循环体内不能嵌入JS代码 对 <%=path.getPathName()%> 进行编码 否则树渲染不出来
2 最好是在服务端对<%=path.getPathName()%> 进行编码
rainpher 2010-01-26
  • 打赏
  • 举报
回复
中文参数必须编码后再传递吧
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-26 02:13
社区公告
暂无公告