2009-08-07 45 views
2

我使用json對象來存儲不同的內容位,其中一個可以包含javascript & html相關內容(如引號,分號,標籤等),沒有編碼可以打破頁面。要解決此我使用:JSP/Javascript/JQuery:將html/javascript內容存儲在變量中+將其寫入textarea

「內容」: 「<%= StringEscapeUtils.escapeHtml(StringEscapeUtils.escapeJavaScript(內容))%>」

(我使用JSP作爲服務器端技術這是頁面加載時內聯生成的JSON的一部分)

這適用於轉義任何可能會破壞頁面的字符,但我現在需要從該變量獲取內容到textarea。

$('textarea').val(obj.content);

我試圖避免是雙重編碼的這種情況發生在這一點上:

  • 原內容爲:<script>alert("hello world");</script>
  • 內容變量包含:&lt;script&gt;alert(&quot;hello world&quot;);&lt;/script&gt;
  • 在文本textarea閱讀:&lt;script&gt;alert(&quot;hello world&quot;);&lt;/script&gt;當它應該閱讀<script>alert("hello world");</script>

任何方式使這項工作?

回答

0

只要把它放在unescape。我的意思是$('textarea')。val(unescape(obj.content));

+0

unescape()對內容沒有影響。 – Dan 2009-08-07 13:14:04

+0

是的,你是rigth :(對不起 - 你需要手動htmp實體解碼 – 2009-08-07 13:55:45

0

您能否改用StringEscapeUtils.escapeJavaScript?如果JSON位於<script>塊中,該塊應該足以避免打破頁面,並且不需要解碼。

+0

原來是這樣的,但是因爲在我的內容中存在未編碼的「」元素,它過早地關閉了包含JSON的

  • 11. 存儲textarea的內容
  • 12. 將文件直接寫入TcpClient而不將其存儲到內存中
  • 13. 將列表變量存儲爲字符串並將其存儲爲變量
  • 14. 如何將指針的內容存儲到變量中?
  • 15. 將HTML元素的內容存儲到PHP變量中?
  • 16. 將html內容存儲到php變量中?
  • 17. 將TListBox的選定行的內容存儲在變量上
  • 18. 比較兩個csv文件的內容並將其存儲到變量中
  • 19. PHP,接受上傳的文件,然後將其內容存儲到變量中?
  • 20. 將變量的內容寫入文件中的問題
  • 21. 將導入的.txt中的內容存儲到一個JS變量中
  • 22. 將enum常量存儲在變量中
  • 23. 將文檔寫入內部存儲
  • 24. PHP將變量存儲在緩存中
  • 25. 如何從gforth的標準輸入中讀取某些內容並將其存儲在變量中?
  • 26. Django自定義文件存儲 - 將內容寫入文件
  • 27. 如何將內容寫入pdf? Google雲端存儲服務
  • 28. 將HTML5 textarea內容保存到文件
  • 29. 將tinymce textarea內容保存到文件
  • 30. 將XML內容保存到變量