2013-10-17 43 views
-1

我test.jsp的逃生Java端字符串中的JavaScript

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

"testName" varible申报全球和它的价值"javascript:alert("hi");"

而assing其中包含双引号它给未终止的字符串错误值。 我尝试过逃跑。 java端编码/解码但仍有分配问题。 什么会在JavaScript或jQuery中的方式?

+0

只是用它内部的单引号' “的javascript:警报( '你好');”' –

+0

@DavidFregoli:它的Java varibale。它可能包含任何值。你将如何在JavaScript的客户端手段做到这一点。 –

+1

,然后逃逸它在Java中,由它得到的JavaScript它已经不能分析 –

回答

0

尽量简单

<script> 
var name=<%=new Gson().toJson(testName)%>; 
</script> 
0

我把它传递给前端之前删除从后端的字符串的任何报价。

但是,如果你需要保持引号括起来的,你应该逃避他们在后端。

因此,如果前端是用单引号括住的字符串,你必须逃脱后端单引号。

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

在前端,它最终会被

var text = 'my string\' test';