我有一个MVC应用程序,我使用jQuery将一些文本插入到DOM中。
如果我使用:
$("#toggle").text('<%: translated.Show %>');
呈现文字。
如果我使用:
$("#toggle").text("<%: translated.Show %>");
如果资源字符串包装在双引号中,则会抛出JavaScript错误,请注意包装工作版本的单引号和包含错误版本的双引号。
任何人都可以解释原因,我认为Javascript中的单引号和双引号之间几乎没有区别。
'translated.Show'字符串不包含引号只是纯文本。
答案 0 :(得分:2)
JS中双引号和单引号之间的唯一区别是单引号内部,单引号必须在双引号内转义,双引号必须转义。
问题很可能是translated.Show
内的数据包含双引号(尽管你保证它不会......引用字符 被认为是纯文本的一部分)。
确保您关注Rule 3: JavaScript Escape Before Inserting Untrusted Data into JavaScript Data