次のように、JavaコードからJavaScriptに文字列を渡そうとしています。
myData.data = "${data.myString}";
myString
が含まれている場合、これは壊れます"
代わりにjavascriptの安全な文字列を保存しようとしましたが、代わりに置き換え"
ましたが、jspで\"
使用すると、代わりに表示された醜い出力が表示されますmyString
\"
"
文字列を安全に渡し、残りの出力を台無しにしないための最良の方法は何ですか。
次のように、JavaコードからJavaScriptに文字列を渡そうとしています。
myData.data = "${data.myString}";
myString
が含まれている場合、これは壊れます"
代わりにjavascriptの安全な文字列を保存しようとしましたが、代わりに置き換え"
ましたが、jspで\"
使用すると、代わりに表示された醜い出力が表示されますmyString
\"
"
文字列を安全に渡し、残りの出力を台無しにしないための最良の方法は何ですか。
それをJSPのhtmlにエンコードします。
<input id="test_hide" type="hidden" value="${URIUtil.encodeAll("http://www.google.com?q=a b","UTF-8")}">
次にJavaScriptで:
myData.data = decodeURIComponent(document.getElementById('test_hide').getAttribute('value'));
二重引用符をで置き換えると"
うまくいくはずです
悪い解決策:
文字列に二重引用符が含まれているかどうかを確認し、含まれている場合は次を使用します
myData.data = '${data.myString}';
一重引用符が含まれている場合は、
myData.data = "${data.myString}";
一重引用符と二重引用符の両方がある場合、これは爆発します。
良い解決策:
使用するだけ
"