也许我只是在想这个太难了,但是我在弄清楚链接的 onClick 处理程序中的某些 JavaScript 代码中的字符串使用什么转义时遇到了问题。例子:
<a href="#" onclick="SelectSurveyItem('<%itemid%>', '<%itemname%>'); return false;">Select</a>
<%itemid%>
和<%itemname%>
是模板替换发生的地方。我的问题是项目名称可以包含任何字符,包括单引号和双引号。目前,如果它包含单引号,则会破坏 JavaScript 代码。
我的第一个想法是使用模板语言的函数来 JavaScript 转义项目名称,这只是转义引号。这不会解决包含双引号的字符串会破坏链接的 HTML 的情况。这个问题一般是怎么解决的?我是否需要对整个 onClick 处理程序进行 HTML 转义?
如果是这样,那看起来真的很奇怪,因为模板语言的转义函数也会 HTMLify 括号、引号和分号......
正在为搜索结果页面中的每个结果生成此链接,因此无法在 JavaScript 标记内创建单独的方法,因为我需要为每个结果生成一个。
此外,我正在使用我工作的公司内部开发的模板引擎,因此特定于工具包的解决方案对我来说毫无用处。