在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实体表示来替换双引号,
"
。
"
正如我以前所建议的那样,由于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 "Mini"'); return false;">edit</a>
</body>
</html>
应该做的伎俩。
链接地址: http://www.djcxy.com/p/12113.html