Extjs 無法decode 帶有 \n 的字串

來源:互聯網
上載者:User

我們上次偶然發現了一個問題,我們在一個龐大的項目中,然後按照 spring web flow 走下去,最後一步提交,提交成功,但是回到某個頁面上的時候,總是報錯,說某個變數 比如var projectInfo,這個變數為null。


後來我們仔細看了下代碼,原來是因為這個頁面上有個欄位是textarea,然後它會支援多行輸入,多行也就是\n,然後在extjs看來,它無法對於一個包含\n的字串進行decode,所以decode的結果就是null


我們實驗如下:


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

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/113TT641-0.png" title="6.png" />

這裡可以看出decode會失敗。


(2)Ext.decode一個不包含\n或者包含吧所有\n都轉為\\n之後的字串:

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/113TR247-1.png" title="7.png" />

這裡看出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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.