日期:2014-05-16  浏览次数:20341 次

求助 Dtree 调用JS函数,参数传递时的中文乱码问题
用dtree动态生成了一个简单树

下面是jsp内的代码

JScript code


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报错信息如下:

JScript code

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




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

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

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





------解决方案--------------------
设置当前页面的编码。
http://www.cnblogs.com/ddr888/archive/2006/11/21/567210.html