我在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)无效。
任何想法?
答案 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, "'");