0
onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"

${viewWPMasterGrid.name} 向我返回一个字符串(例如 WPWINT OFF ALL'10),它通常具有单引号字符,因此从调用 javascript 方法中我根本没有得到第二个参数。如何处理问题?

4

4 回答 4

2

当动态字符串可以放在 JavaScript 字符串文字中时,它应该是 JS 转义的。就像将动态字符串放在 HTML 页面中一样,它是 HTML 转义的。

使用 commons-lang StringEscapeUtils.escapeECMAScript(或escapeJavaScript取决于版本)来转义字符串。您可以直接从 JSP 创建一个非常简单的 EL 函数来执行此操作。

请注意,单引号可能会出现问题,但双引号、标签、EOL、反斜杠也可能会出现问题,这些都必须在 JS 字符串文字中进行转义。

于 2012-01-06T12:33:13.303 回答
1

看起来您可以先将第二个参数拆分为它自己的变量。如果我正确理解了您的问题。

var viewWPMasterGridName = "${viewWPMasterGrid.name}";
onclick = "_deleteWPSchemeData(${viewWPMasterGrid.id},'" + viewWPMasterGridName + "')";
于 2012-01-06T12:29:03.010 回答
0

尝试这个,

var name = "${viewWPMasterGrid.name}".replace(/'/g,"\\'");
于 2012-01-06T12:39:23.410 回答
0

利用'${viewWPMasterGrid.name.replaceAll("'", "\'")}'

于 2012-01-06T12:29:08.923 回答