onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"
$ {viewWPMasterGrid.name}向我传递一个字符串(例如W.P.WINT OFF ALL'10),它通常具有单引号字符,所以从调用javascript方法中我根本没有得到第二个参数。如何处理问题?如何在jsp页面处理javascript中的单引号?
onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"
$ {viewWPMasterGrid.name}向我传递一个字符串(例如W.P.WINT OFF ALL'10),它通常具有单引号字符,所以从调用javascript方法中我根本没有得到第二个参数。如何处理问题?如何在jsp页面处理javascript中的单引号?
看起来好像你可以将第二个参数分解为它自己的变量。如果我已经正确理解你的问题。
var viewWPMasterGridName = "${viewWPMasterGrid.name}";
onclick = "_deleteWPSchemeData(${viewWPMasterGrid.id},'" + viewWPMasterGridName + "')";
这与他所做的一样。 – 2012-01-06 12:35:13
使用'${viewWPMasterGrid.name.replaceAll("'", "\'")}'
您不能在JSP EL中使用replaceAll。 – 2012-01-06 12:34:07
当动态字符串可以将JavaScript字符串字面内部的说,它应该是JS-逃脱。就像动态字符串放在HTML页面中一样,它是HTML转义的。
使用commons-lang StringEscapeUtils.escapeECMAScript
(或escapeJavaScript
,具体取决于版本)转义字符串。您可以创建一个非常简单的EL函数来直接从JSP执行此操作。
请注意,您可能会遇到单引号问题,但也可能存在双引号,标记,EOL和反斜杠,它们必须全部在JS字符串文字中转义。
试试这个,
var name = "${viewWPMasterGrid.name}".replace(/'/g,"\\'");
的[逃避传递给js函数在一个onclick事件字符串可能行情](http://stackoverflow.com/questions/8593834/escape-possible-quotes可能重复-in-string-passed-a-js-function-in-a-onclick-event) – BalusC 2012-01-06 12:28:53