說我有一些JSP變種富通過JSP VAR到js函數時轉義字符
<c:set var="foo" value="foo's bar"/>
和我有以下JS
<script>
new SomeFunction('${foo}');
</script>
這顯然會產生錯誤
missing) after argument list
因爲聲明最後是
new SomeFunction('foo's bar');
但是,我不想僅僅用雙引號括住參數$ {foo},因爲foo的值也可能在其字符串中有一個雙引號,這會導致相同的問題。假設foo可以是任何字符串。我只將它設置爲foo的欄,所以這個例子很清楚。目前,我解決問題,像這樣:
<script>
new SomeFunction('<c:out value="${foo}"/>');
</script>
和內SomeFunction:
SomeFunction = new function(foo) {
$(someSelector).text($("<div/>").html(foo).text());
}
該解決方案似乎工作 - 假設我絕不錯過某個角落的情況。但是,我不相信這是最好的解決方案。任何替代方案或改進建議?對於我來說,使用臨時div似乎有些不禮貌,我寧願選擇不需要的解決方案。
不會[escape()](https://developer.mozilla.org/en/DOM/window.escape)工作嗎?然後使用'unescape()'將其轉換回來。 – sinemetu1 2012-03-15 18:32:57
可能的重複:[如何在JSP上使用撇號或引號(由javascript使用)](http://stackoverflow.com/questions/1470768/how-to-escape-apostrophe-or-quotes-on-a-jsp -used-by-javascript) – tkone 2012-03-15 18:33:19
[如何從JSP內部轉義單引號?](http://stackoverflow.com/questions/9708242/how-to-escape-a-single-quote-from -within-a-jsp) – BalusC 2012-03-15 19:43:13