一尘不染

JavaScript中的转义引号

javascript

我正在从数据库中输出值(它实际上并不开放给公众进入,但是它对公司用户开放,这意味着我不担心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>

阅读 217

收藏
2020-04-25

共1个答案

一尘不染

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

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

2020-04-25