繁体   English   中英

在AJAX响应中将HTML标签显示为HTML

[英]Display HTML tags as HTML in AJAX response

我有控制器方法:

def do_it
   @result = "some <b>another</b>"

   respond_to do | format |  
        format.js {render :layout => false}  
   end
end

和do_it.js.erb:

$( "#in" ).html("<b>hello</b> <br /> <%= @result %>");

当我调用此方法时,我会在浏览器中将“ hello”显示为粗体,将“ another”显示为带有标签的普通文本。

在此处输入图片说明

我需要隐藏所有html标记,并将“另一个”显示为粗体文本。 我该如何解决?

<%=%>默认情况下转义HTML代码。 您可以通过以下方式阻止它执行此操作:

$( "#in" ).html("<b>hello</b> <br /> <%= raw @result %>");

要么

@result = "some <b>another</b>".html_safe()

我对红宝石的了解并不多,但是我发表在这篇文章中可能与您的问题有关:

1- rails:如何对字符串进行html编码/转义? 有内置的吗?

2- 如何在Ruby中编码/解码HTML实体?

我认为您应该对原始字符串进行html编码

@result = "some <b>another</b>"

然后在显示时对其进行html解码。 祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM