Extjs无法decode带有\n的字符串 - 面向对象网,web开发,Extjs,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > Web开发 > Extjs > 正文

Extjs无法decode带有\n的字符串

来源: www.bianceng.cn 阅读:

我们上次偶然发现了一个问题,我们在一个庞大的项目中,然后按照 spring web flow 走下去,最后一步提交,提交成功,但是回到某个页面上的时候,总是报错,说某个变量 比如var projectInfo,这个变量为null。

后来我们仔细看了下代码,原来是因为这个页面上有个字段是textarea,然后它会支持多行输入,多行也就是\n,然后在extjs看来,它无法对于一个包含\n的字符串进行decode,所以decode的结果就是null

我们实验如下:

(1)Ext.decode一个包含\n的字符串:

\

这里可以看出decode会失败。

(2)Ext.decode一个不包含\n或者包含吧所有\n都转为\\n之后的字符串:

\

这里看出decode会成功。

基于这个思路我们就找到正确的解决方法了,我们只需要吧所有'\n'替换成'\\n'就可以了,为此在js代码中:

原来是:

var projectInfo = Ext.decode(decodeURIComponent('${projectInfoJSONData}',true);

现在改成:

var projectInfo = Ext.decode(decodeURIComponent('${projectInfoJSONData}').replace(/\n/g,'\\n'),true);

本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/1222093

查看本栏目更多精彩内容:http://www.bianceng.cn/webkf/Extjs/

Tags:
相关文章列表: