我知道这看起来很傻,但我遇到了一个必须将参数传递给javascript函数的情况,这些参数都是String
类型。
数据问题是,数据可以包含single Quote
或Double quote
e.g。
“TEST”,TEST
或TEST
。这来自数据库。
这是我点击的JSTL电话。
第二个参数值是
ANOTHER " company"
这是真正的根本原因。
我尝试了JSTL fn: replace(.....)
方法,但没有成功。
注意:该值也可以是'ANOTHER' Company
。
<a href="javascript:void(0);"
onclick="return showPopUp('${account.fName}','${fn:replace(account.lName, "\'","\\\'")}','${fn:replace(account.compName, "\'", "\\\'")}','${account.firstTimePin}','${account.email}');return false;">
</a>
这将生成以下HTML代码。
<a href="javascript:void(0);"
target="_self"
onclick="return showPopup('CRUISE ','ANOTHER " company"','123456','user@directbiller.com');">
</a>
这是我的javascript函数
function showPopup(param1,param2,param3,param4){
// busness logic
}
问题是调用showPopup()
方法无效的调用/语法。
答案 0 :(得分:1)
使用"
对其进行编码。
function showPopup() { console.log(arguments); }
<a href="javascript:void(0);" target="_self"
onclick="return showPopup('CRUISE ','ANOTHER " company"','123456','user@directbiller.com');">
Link
</a>
只需添加另一个替换术语,即
fn:replace(fn:replace(account.compName, "\"", """), "\'", "\\\'")