也许我想得太多了,但我遇到了一个问题,无法确定在链接的 onClick 处理程序内的某些 JavaScript 代码中使用哪种转义字符串。例如:
也许我想得太多了,但我遇到了一个问题,无法确定在链接的 onClick 处理程序内的某些 JavaScript 代码中使用哪种转义字符串。例如:
<a href="#" onclick="SelectSurveyItem('<%itemid%>', '<%itemname%>'); return false;">Select</a>
<%itemid%>
和<%itemname%>
是模板替换发生的地方。我的问题是项目名称可以包含任何字符,包括单引号和双引号。目前,如果它包含单引号,它将中断JavaScript代码。我的第一个想法是使用模板语言的功能对项目名称进行JavaScript转义,这只会转义引号。这将无法解决包含双引号的字符串导致链接HTML中断的情况。通常如何解决此问题?我需要对整个onClick处理程序进行HTML转义吗?
如果是这样,看起来会非常奇怪,因为模板语言的转义函数也会将括号、引号和分号HTML化...
这个链接是为搜索结果页面中的每个结果生成的,因此在JavaScript标签内创建单独的方法是不可能的,因为我需要为每个结果生成一个方法。
此外,我正在使用公司自制的模板引擎,因此特定于工具包的解决方案对我没有用。
btn.OnClientClick = "return confirm('Are you sure?')";
是有效的,但是如果要在其中放置单引号(例如"return confirm('You're sure, right?');"
),唯一的方法是进行编码...既不是反斜杠也不是'
起作用。 - John Riehl