在rjerb模板中输出HTML
Output HTML in a RJ ERB template
这可能有点傻,但我不能让它工作…
我有vacation.js.erb,它生成一些javascript来在ajax调用完成时更新页面。该文件的源文件如下所示:
$('semantic').replace('<div id="semantic"></div>');
<%
html = '<table class="ajax">'
html += "<tr><td>EU - 27</td><td>#{@eu.value.value} days</td></tr>"
html += "<tr><td>#{@source.location.value}</td><td>#{@source.value.value } days></td></tr>" unless @source.location.value.blank?
html += "<tr><td>#{@cv.country.name}</td><td>No Data Available</td></tr>" if @source.location.value.blank?
html += "<tr><td>#{@target.location.value}</td><td>#{@target.value.value } days></td></tr>" unless @target.location.value.blank?
html += "<tr><td>#{@vacancy.country.name}</td><td>#{@target.value.value } days></td></tr>" if @target.location.value.blank?
html += "</table>"
%>
$('semantic').insert('<%= escape_javascript(html) %>');
我可以用浏览器清楚地浏览代码,但是最后一行给我带来了麻烦。它将html中的内容编码为html实体,我不想这样,因为这会破坏javascript。Fiddler中的响应如下所示:
$("语义").replace (");$("语义").insert (' & lt;表ajax类= '"'"祝辞& lt; tr> & lt; td>欧盟-27日& lt;/td> & lt; td> 28days & lt;/tr> & lt; tr> & lt; td> gb & lt; td>没有数据Available & lt;/tr> & lt; tr> & lt; td>美国Kingdom & lt; td>29days> & lt;/td> & lt;/tr> & lt;/table>);
如何防止页面对html变量进行编码?我试着用<%!html %>但是没有返回任何结果。
修复它,解决方案是
$('semantic').replace('<div id="semantic"></div>');
<%
html = '<table class="ajax">'
html += "<tr><td>EU - 27</td><td>#{@eu.value.value} days</td></tr>"
html += "<tr><td>#{@source.location.value}</td><td>#{@source.value.value } days></td></tr>" unless @source.location.value.blank?
html += "<tr><td>#{@cv.country.name}</td><td>No Data Available</td></tr>" if @source.location.value.blank?
html += "<tr><td>#{@target.location.value}</td><td>#{@target.value.value } days></td></tr>" unless @target.location.value.blank?
html += "<tr><td>#{@vacancy.country.name}</td><td>#{@target.value.value } days</td></tr>" if @target.location.value.blank?
html += "</table>"
%>
$('semantic').insert('<%=raw html -%>');
找到了解决方案:在动词模板中禁用HTML转义
相关文章:
- 使用Jade输出HTML(在ng个重复内)
- 输出 html 表单数据
- 如何通过 AngularJS 模板输出 html
- Ajax 输出 html 注释
- 显示查询输出 HTML 中的图像
- HTML 代码不适用于 jquery 调用,而是输出 HTML 代码
- Html.ActionLink onclick JavaScript 函数未被调用,并且函数名称在输出 HTML 中已损
- Javascript -使用字符串输出HTML
- 如何正确使用jQuery从php输出html字符串
- 为什么.html()不输出html标签
- 如何获得一个变量's输出html值
- Twitter-text.js输出html作为纯文本
- 多行文本文件输出html
- 如何使用XSLT匹配元素和输出HTML
- 输出HTML代码
- 输出HTML时出现意外的令牌错误
- 用JavaScript输出HTML实体
- 在rjerb模板中输出HTML
- 从angularjs过滤器输出HTML,无需ng绑定HTML
- 获取实际输出HTML的函数