-1

我有 test.jsp

<script>
var name="<%=testName %>";
</script>

"testName"全局声明变量并且它具有价值"javascript:alert("hi");"

在评估包含双引号的值时,它会给出未终止的字符串错误。我尝试了逃跑。java端编码/解码,但仍有分配问题。在 javascript 或 jquery 中会有什么方法?

4

3 回答 3

1

您可以通过它转义引号/字符prepending \

在 JSP 中

<script>
var name="<%=testName.replace('"','\"') %>";
</script>

或在 JS

alert(variabl.replace(/"/g, '\\"'));

检查使用单引号将参数传递给函数

于 2013-10-17T15:26:35.220 回答
0

简单地尝试

<script>
var name=<%=new Gson().toJson(testName)%>;
</script>
于 2013-10-17T15:24:20.800 回答
0

在将其传递到前端之前,我会从后端的字符串中删除所有引号。

但是,如果您需要在字符串中保留引号,则应在后端对它们进行转义。

因此,如果前端使用单引号将字符串括起来,则必须在后端转义单引号。

String myString = "my string\\'s test";

在前端,它将最终成为

var text = 'my string\' test';
于 2013-10-17T15:25:00.223 回答