我正在从数据库中输出值(它实际上并不向公众开放,但它对公司的用户开放——也就是说,我不担心 XSS)。
我正在尝试输出这样的标签:
<a href="" onclick="DoEdit('DESCRIPTION');">Click Me</a>
DESCRIPTION 实际上是来自数据库的一个值,类似于:
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
以清除双引号字符。它们导致 onclick
HTML 属性过早关闭。
在 HTML 上下文中使用 JavaScript 转义字符 \
是不够的。您需要将双引号替换为正确的 XML 实体表示,"
。
关于javascript - JavaScript 中的转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2004168/