嗨我的javascript字符串有问题
var foo = \"<a href="javascript(foo('a','b'))">test</a>\"
这句话给我一个错误
我本可以逃脱内心的“但我不能改变<a href="javascript(foo('a','b'))">test</a>
这部分
有没有办法处理这种情况?
谢谢, Sourabh
答案 0 :(得分:4)
不,你需要以某种方式逃避字符串。
var foo = "<a href=\"javascript(foo('a','b'))\">test</a>";
或
var foo = '<a href="javascript(foo(\'a\',\'b\'))">test</a>';
答案 1 :(得分:2)
没有办法让字符串中的字符转义而不转义字符串中的字符,例如使用C#具有的@ -quoted。例如
string myString = @""Good Morning", said Dave's mother";
您需要使用\
字符在JavaScript中转义字符串中的字符。
答案 2 :(得分:2)
几年后,String.raw()
现在可以实现let foo = @String.raw`<a href="javascript(foo('a','b'))">test</a>`
答案 3 :(得分:1)
要么在JavaScript中转义引号:
var foo = "<a href=\"javascript(foo('a','b'))\">test</a>";
var foo = "<a href=\x22javascript(foo('a','b'))\x22>test</a>";
var foo = '<a href="javascript(foo(\'a\',\'b\'))">test</a>';
var foo = '<a href="javascript(foo(\x27a\x27,\x27b\x27))">test</a>';
或者在HTML中转义引号:
var foo = '<a href="javascript(foo('a','b'))">test</a>';
答案 4 :(得分:1)
This forum topic似乎至少有一个“有趣”的选择。它在匿名函数中使用多行注释来启用包含“和'以及多行字符串的字符串。
编辑:根据 bucabay (在下面的评论中),此方法不再有效,至少在Firefox 3.5中。
答案 5 :(得分:0)
不,没有办法。由于您不允许更改的部分包含引号和撇号,因此无法在不更改Javascript的情况下将其表示为字符串文字。
也许您可以将它作为CData文字放在页面的XML岛中,然后让Javascript从那里读取它......