我有一个页面,其中包含以下链接:
<%= link_to_function(
'my function',
"my_js_method('#{escape_javascript(
t('.wanna',
:name => h(name)
))
}', this)",
) %>
名为"<foo'bar>"
的生成代码为:
<a href="#" onclick="my_js_method('Wanna <foo'bar> ?', this); return false;">my_function</a>
您会注意到onclick
属性中间的单引号。
好奇的想法是我在rails控制台中执行这些行:
>> helper.send(:html_escape, "<foo'bar>")
=> "<foo'bar>"
>> helper.send(:escape_javascript, helper.send(:html_escape, "<foo'bar>"))
=> "<foo'bar>"
我的浏览器(Chromium)在阅读HTML流程中是否解释了'
,<
和>
?
如何忽视这种转变;保留逃脱的角色?