我试图将字符串参数传递给JavaScript函数。 出于某种原因,它只能获得整数。 我在这里只提到字符串的语法,因为我知道这是问题,因为它与int。
有关发送功能内的代码:
String counter = "hey";
out.println("<script>parent.update(\'' + counter + '\')</script>");
out.flush();
最终,我希望我的HTML网页上的update
功能可以调用counter
,如上所示:
<script>
function update(p) { alert(p); }
</script>
正如我所提到的,javascript文件在发送int时会发出警报,但在发送字符串时没有反应。
答案 0 :(得分:0)
您尝试做的事情称为“字符串插值”并在其他语言中使用 - 您可以使用格式化字符串并自动将值插入其中。
您使用的代码不会这样做 - 因为您只将单个字符串传递给out.println
,所以它按原样打印。
您的选择
使用连接构造字符串
out.println("<script>parent.update('" +
counter +
"')</script>");
使用String.format,如http://docs.jboss.org/drools/release/6.4.0.Final/drools-docs/html_single/#d0e12560
所示out.println(String.Format("<script>parent.update('%s')</script>",
counter));
注意:如果您尝试传递给JavaScript函数的值可能包含引号(特别是如果来自用户的输入),则需要先将其转义。