小编典典

JavaScript 中的转义引号

all

我正在从数据库中输出值(它实际上并不对公众开放,但它对公司的用户开放——也就是说,我不担心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>

阅读 96

收藏
2022-05-31

共1个答案

小编典典

您需要转义要写入的字符串DoEdit以清除双引号字符。它们导致onclickHTML 属性过早关闭。

在 HTML 上下文中使用 JavaScript 转义字符 ,\是不够的。您需要将双引号替换为正确的 XML 实体表示,&quot;.

2022-05-31