分配javascript字符串而不转义

时间:2009-09-03 09:55:36

标签: javascript

嗨我的javascript字符串有问题

var foo = \"<a href="javascript(foo('a','b'))">test</a>\"

这句话给我一个错误

我本可以逃脱内心的“但我不能改变<a href="javascript(foo('a','b'))">test</a>这部分

有没有办法处理这种情况?

谢谢, Sourabh

6 个答案:

答案 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(&#39;a&#39;,&#39;b&#39;))">test</a>';

答案 4 :(得分:1)

This forum topic似乎至少有一个“有趣”的选择。它在匿名函数中使用多行注释来启用包含'以及多行字符串的字符串。

编辑:根据 bucabay (在下面的评论中),此方法不再有效,至少在Firefox 3.5中。

答案 5 :(得分:0)

不,没有办法。由于您不允许更改的部分包含引号和撇号,因此无法在不更改Javascript的情况下将其表示为字符串文字。

也许您可以将它作为CData文字放在页面的XML岛中,然后让Javascript从那里读取它......