在JavaScript中转义引号

我从数据库中输出数据(它并不是真正开放给公众参与,但它可以由公司的用户开放 - 这意味着我不担心XSS)。

我试图输出这样的标签:

<a href="" onclick="DoEdit('DESCRIPTION');">Click Me</a>

描述实际上是数据库中的一个值,如下所示:

Prelim Assess "Mini" Report

我已经尝试用“”替换“,但无论我尝试什么,Firefox都会在评估之后的空格之后切断我的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实体表示来替换双引号, &quot;


&quot; 正如我以前所建议的那样,由于HTML上下文的原因,它将在这种特殊情况下起作用。

但是,如果您希望您的JavaScript代码在任何情况下独立转义,则可以选择原生JavaScript编码:
'变成x27
"变成x22

所以你的onclick会变成:
DoEdit('Preliminary Assessment x22Minix22');

例如,当将JavaScript字符串作为参数传递给另一个JavaScript方法( alert()对此是一种简单的测试方法alert()时,这也会起作用。

我指的是重复的Stack Overflow问题,我如何在onClick处理程序中的JavaScript代码内部转义字符串?


<html>
    <body>
        <a href="#" onclick="DoEdit('Preliminary Assessment &quot;Mini&quot;'); return false;">edit</a>
    </body>
</html>

应该做的伎俩。

链接地址: http://www.djcxy.com/p/12113.html

上一篇: Escape quotes in JavaScript

下一篇: Which characters make a URL invalid?