Eri*_*ric 15 javascript quotes escaping ruby-on-rails
尝试在javascript代码中使用rails变量时遇到问题.
例如,我可以使用参数定义link_to_remote
:complete => "alert('my_var');"
如果my_var = "I'm testing.",则javascript代码将因单引号过早关闭代码而中断.如果我尝试使用escape_javascript(my_var)以便引用该引用\',则似乎无法解决问题.
我注意到,当你尝试alert('I\'m testing');有一个问题,但如果你这样做alert('I\\'m testing'),它的工作原理.由于escape_javascript只转'进\',而不是\\',是否有人对如何处理这一建议?
谢谢!埃里克
bob*_*nce 29
当你尝试
alert('I\'m testing');那里有一个问题
反斜杠也是Ruby字符串中的一个转义!所以字符串文字:
"alert('I\'m testing');"
表示字符串:
alert('I'm testing');
在JavaScript看到它之前,反斜杠已经消失了.当你在 Ruby字符串文字中编写一个JavaScript字符串文字时,你需要逃避转义\\,以获得一个真实的\,然后在JavaScript中,逃避撇号.
escape_javascript如果在其输入中包含反斜杠,则正确生成JavaScript的反斜杠.但同样,如果您正在编写字符串文字,则必须使用反斜杠来获得真正的反斜杠:
escape_javascript("\b")     -> this is a backspace character!
escape_javascript("\\b")    -> this is backslash-then-letter-b;
                               escaped for JavaScript literal to double-backslash-then-b.
所以,这很好:
"'"+escape_javascript(myvar)+"'"
或者,您可以使用JSON编码器创建JavaScript字符串文字,包括周围的引号.
| 归档时间: | 
 | 
| 查看次数: | 18578 次 | 
| 最近记录: |