我正在从数据库中输出值(它实际上并不对公众开放,但它对公司的用户开放——也就是说,我不担心XSS)。
我正在尝试输出这样的标签:
<a href="" onclick="DoEdit('DESCRIPTION');">Click Me</a>
描述实际上是数据库中的一个值,如下所示:
Prelim Assess "Mini" Report
我试过用 \ 替换“,但无论我尝试什么,Firefox 都会在单词 Assess 后面的空格后切断我的 JavaScript 调用,这会导致各种问题。
我必须错过明显的答案,但对于我的生活,我无法弄清楚。
有人愿意指出我的白痴吗?
这是整个 HTML 页面(最终将是一个ASP.NET页面,但为了解决这个问题,我取出了除问题代码之外的所有内容)
<html> <body> <a href="#" onclick="DoEdit('Preliminary Assessment \"Mini\"'); return false;">edit</a> </body> </html>
您需要转义要写入的字符串DoEdit以清除双引号字符。它们导致onclickHTML 属性过早关闭。
DoEdit
onclick
在 HTML 上下文中使用 JavaScript 转义字符 ,\是不够的。您需要将双引号替换为正确的 XML 实体表示,".
\
"