【问题标题】:Issues with escaped html in .js.erb file.js.erb 文件中的转义 html 问题
【发布时间】:2011-09-14 07:46:27
【问题描述】:

我有一个包含以下行的 .js.erb 文件

$("#").html("")

显示

<a href=/users/1/tags>1 taga>

代替

1 个标签

这在我运行 rails 3.0.4 时可以正常工作,但现在我运行 rails 3.0.8 时就不行了。我发现我需要在我一直使用auto_link 的其他地方添加.html_safe,否则我会遇到同样的问题。

我怎样才能让它不会逃脱这个html?

【问题讨论】:

    标签: jquery html ruby-on-rails-3


    【解决方案1】:

    我从不喜欢像这样用 ruby​​ 插入你的 JS。毛茸茸总是让人难以理解。

    相反,将您的数据作为 JSON 转储到它自己的 JS 中,然后简单地将数据用作本机 javascript。

    var user = <%= {
      :id => current_user.id,
      :path => user_tags_path(current_user),
      :link_text => pluralize(@count,'tag'),
    }.to_json %>;
    
    var link = $('<a>').attr('href', user.path).text(user.link_text);
    $('#user' + user.id + '_following').html(link);
    

    在我看来,这更容易理解,并且完全避免了任何 HTML 问题,因为 HTML 根本不在您的 ruby​​ 表达式中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 2018-01-02
      • 2010-10-31
      • 1970-01-01
      相关资源
      最近更新 更多