轨道3-逃逸部分's在javascript响应中生成了html
rails 3 - escaping partial's generated html in javascript response
我正在尝试做一件简单的事情,其中:
_flash.js.erb:
$("#alerts").append("<%=j render :template => "shared/_flash.html.erb" %>");
注意<%=j…,它转义了javascript。
_flash.html.erb:
<% flash.each do |key, value| %>
<div class="alert-message top <%= "#{key}" %> fade in" data-alert="alert">
<a class="close" href="#">x</a>
<p><%=j value %></p>
</div>
<% end %>
然而,当调用_flash.js.erb时,会附加如下内容:
$("#alerts").append(" 'u003Cdiv class=alert-message top warning fade in data-alert=alert'u003E
'u003Ca class=close href=#'u003Ex'u003C/a'u003E
'u003Cp'u003ELooks like you have already linked with Facebook.'u003C/p'u003E
'u003C/div'u003E
");
如果没有javascript转义,响应如下:
$("#alerts").append(" <div class="alert-message top warning fade in" data-alert="alert">
<a class="close" href="#">x</a>
<p>Looks like you have already linked with Facebook.</p>
</div>
");
在第一个响应中,逃逸了太多的东西。在第二个响应中,什么都没逃脱,双引号把事情搞砸了。
在导轨3中,以稳健的方式实现上述目标的推荐方式是什么?
请改用escape_javascript
;您正在对其进行JSON转义。
你可以像j
是json_escape
的别名一样对某些东西进行别名;它只是一个帮手。
相关文章:
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 如何从SeleniumWebdriver获取异步Javascript响应
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- 显示IIS上javascript文件(SOAP请求)的XML响应
- 带有对象解析的响应javascript ajax失败
- ajax响应JavaScript中的文档对象
- 为什么不't使用PHP动态生成的HTML响应JavaScript
- JSON 分页响应 JavaScript
- 从 stomp 消息响应 (JavaScript) 迭代 json 数组
- 检查我的服务器是否正在响应[Javascript]
- 在rails 4中将remote选项设置为true后,Link_to标签没有响应javascript
- 我怎么能强迫元素在一个固定的定位元素响应javascript的onclick事件在Android web浏览器
- 在CodeIgniter中,模板上动态添加的内容不响应Javascript/AJAX/Jquery
- 如何在PHP中有一个动作响应javascript
- Vimeo不响应Javascript在iOS应用程序
- 编辑表设计以响应Javascript启用/禁用
- 选项卡只响应javascript和CSS
- 使用 PyQt 输出和响应 Javascript
- Angular JS响应Javascript所做的更改
- Facebook不响应Javascript API调用