【问题标题】:Display HTML tags as HTML in AJAX response在 AJAX 响应中将 HTML 标记显示为 HTML
【发布时间】:2012-11-02 20:20:38
【问题描述】:

我有控制器方法:

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 标记并将“另一个”显示为粗体文本。我该如何解决?

【问题讨论】:

    标签: javascript ruby-on-rails ajax


    【解决方案1】:

    我对 ruby​​ 不太了解,但我看到这篇文章可能与您的问题有关:

    1-rails: how to html encode/escape a string? is there a built-in?

    2-How do I encode/decode HTML entities in Ruby?

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

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

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

    【讨论】:

      【解决方案2】:

      默认转义 HTML 代码。您可以通过以下方式阻止它:

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

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

      【讨论】:

      • 谢谢!你回报了我对 Rails 的信任 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2014-10-18
      • 2019-08-18
      相关资源
      最近更新 更多