簡體   English   中英

JSP / Javascript / JQuery:將html / javascript內容存儲在變量中+將其寫入textarea

[英]JSP/Javascript/JQuery: store html/javascript content in a variable + write it to textarea

我正在使用json對象存儲內容的不同位,其中之一可以包含與javascript和html相關的內容(例如引號,分號,標簽等),而無需編碼會破壞頁面。 要解決此問題,我正在使用:

“內容”: “<%= StringEscapeUtils.escapeHtml(StringEscapeUtils.escapeJavaScript(內容))%>”

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

這樣可以很好地轉義可能破壞頁面的任何字符,但是現在我需要將內容從此變量獲取到文本區域。

$( '文本區域')VAL(obj.content)。

我要避免的是此時發生的雙重編碼:

  • 原始內容是: <script>alert("hello world");</script>
  • 內容變量包含: &lt;script&gt;alert(&quot;hello world&quot;);&lt;/script&gt;
  • 文本區域中的文本顯示為: &lt;script&gt;alert(&quot;hello world&quot;);&lt;/script&gt; 何時應閱讀<script>alert("hello world");</script>

有什么辦法使這項工作嗎?

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

在我的測試中,使用html函數而不是val為您執行HTML實體解碼。

只需將其放到unscape中即可。 我的意思是$('textarea')。val(unescape(obj.content));

您可以改為使用StringEscapeUtils.escapeJavaScript嗎? 如果JSON位於<script>塊中,則應足以避免破壞頁面,並且無需解碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM