jsonオブジェクトを使用して異なるビットのコンテンツを格納しています。そのうちの1つにjavascriptを含めることができます& html関連コンテンツセミコロン、タグなど)を使用することができます。私が使用していますこの問題を回避するには:JSP/Javascript/JQuery:変数にhtml/javascriptコンテンツを保存する+テキストエリアに書き込む
"コンテンツ": "<%は= StringEscapeUtils.escapeHtml(StringEscapeUtils.escapeJavaScript(コンテンツ))%>"
(私は、サーバー側の技術としてJSPを使用していますページがロードされているときにインラインで生成されたJSONのビットです)
これは、ページを壊す可能性のある文字をエスケープするのにうまくいきますが、この変数の内容をテキストエリアに取得する必要があります。
$( 'textarea')。val(obj.content);
私は何を避けるためにしようとしているが、この時点で起こるダブルエンコーディングです:
- オリジナルコンテンツがある:
<script>alert("hello world");</script>
- コンテンツ変数が成り立つ:
<script>alert("hello world");</script>
- 内のテキストをTEXTAREAは読む:
<script>alert("hello world");</script>
それは<script>alert("hello world");</script>
この作品を作る任意の方法を読む必要があるとき?
unescape()はコンテンツに影響しません。 – Dan
はい、あなたはrigth :(申し訳ありませんが、手動でhtmpエンティティをデコードする必要があります。 –