逃脱报价 - javascript,struts 2

时间:2012-03-30 23:03:41

标签: javascript struts2 escaping

我在javascript中读了一些struts2变量,如下所示:

<javascript type="text/javascript"> 
var data='<s:property value="simulationInfos"/>';
<javascript>

如果我的simulationInfos包含单引号',我会收到错误:意外标识符。

因此,我试图逃避报价如下:

var data='<s:property value="simInfos" escapeJavaScript="true"/>';
and var data='<s:property value="simInfos" escapeHTML="true"/>';

我收到错误:根据TLD,标签属性的属性escapeJavaScript(或escapeHTML)无效。

任何想法?

2 个答案:

答案 0 :(得分:2)

如果您想使用escapeJavascript的内置<s:property>,请升级到2.2.1同样在JavaScript中,如果使用双引号,则可以轻松避免unexpected identifier错误

var data = "<s:property value="simulationInfos"/>";

答案 1 :(得分:1)

单引号出现在哪里?在价值中,我假设?

在这种情况下,在执行struts2操作之前的javascript中,请对值运行此代码。这是一个正则表达式,用于删除javascript的引用。

 var escapedString = valueString.replace(/(['"])/g, "\\$1"); //note, includes double quotes

如果您需要将引号保留为URL编码,请执行此操作

 var escapedString = valueString.replace(/(['])/g, "&apos;");