私はいくつかのjspvarfooを持っていると言います
<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の値の文字列に二重引用符が1つ含まれている可能性があるため、同じ問題が発生するためです。fooは任意の文字列である可能性があると想定します。例が明確になるように、fooのバーに設定するだけです。現在、私は次のように問題を解決しています:
<script>
new SomeFunction('<c:out value="${foo}"/>');
</script>
およびSomeFunction内:
SomeFunction = new function(foo) {
$(someSelector).text($("<div/>").html(foo).text());
}
この解決策はうまくいくようです-私がいくつかのコーナーケースを見逃していないと仮定します。ただし、これが最善の解決策であるとは確信していません。改善のための代替案や提案はありますか?その一時的なdivを使用することは、私には一種のハッキーのように思われます。私は、それが必要とされないソリューションを好みます。