-1

我有一个 MVC 应用程序,我在其中使用 jQuery 将一些文本插入到 DOM 中。

如果我使用:

$("#toggle").text('<%: translated.Show %>');

文本被渲染。

如果我使用:

$("#toggle").text("<%: translated.Show %>");

如果资源字符串用双引号括起来,则会引发 JavaScript 错误,请注意单引号括起工作版本,双引号括起错误版本。

谁能解释为什么,我认为 Javascript 中的单引号和双引号几乎没有区别。

'translated.Show' 字符串不包含引号,只是纯文本。

4

1 回答 1

3

JS中双引号和单引号的唯一区别是,在单引号内,单引号必须被转义,而在双引号内,双引号必须被转义。

问题很可能是其中的数据translated.Show包含双引号(尽管您保证它不...引号字符视为纯文本的一部分)。

确保您遵循规则 3:JavaScript Escape Before Inserting Untrusted Data into JavaScript Data

于 2012-10-23T16:21:33.700 回答