onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"
$ {viewWPMasterGrid.name}向我索引一个字符串(例如W.P.WINT OFF ALL'10),它通常具有单引号字符,所以从调用javascript方法我根本没有得到第二个参数。如何处理问题?
答案 0 :(得分:2)
当动态String可以放在JavaScript字符串文字中时,它应该是JS转义的。就像动态字符串放在HTML页面中一样,它是HTML转义的。
使用commons-lang StringEscapeUtils.escapeECMAScript
(或escapeJavaScript
,具体取决于版本)来转义字符串。你可以创建一个非常简单的EL函数来直接从JSP中完成。
请注意,您可能会遇到单引号问题,还有双引号,标签,EOL,反斜杠,这些都必须在JS字符串文字中进行转义。
答案 1 :(得分:1)
看起来您可以先将第二个参数拆分为自己的变量。如果我已正确理解你的问题。
var viewWPMasterGridName = "${viewWPMasterGrid.name}";
onclick = "_deleteWPSchemeData(${viewWPMasterGrid.id},'" + viewWPMasterGridName + "')";
答案 2 :(得分:0)
使用'${viewWPMasterGrid.name.replaceAll("'", "\'")}'
答案 3 :(得分:0)
试试这个,
var name = "${viewWPMasterGrid.name}".replace(/'/g,"\\'");