html_safe 在 rails 的 link_to 标题属性中不起作用

Posted

技术标签:

【中文标题】html_safe 在 rails 的 link_to 标题属性中不起作用【英文标题】:html_safe not working in link_to title property in rails 【发布时间】:2015-03-10 10:09:05 【问题描述】:

我想显示带有富文本的工具提示,如下所示

<%= link_to 'test', '#', :title => "<b>sample</b>".html_safe %>

它无法使用 html 标签显示。

希望在锚标题属性中显示没有 html 标记的 html 格式文本。

请分享你的想法。

【问题讨论】:

你是如何显示标题的? @RSB,你是什么意思?我想显示没有 html 标签的 html 格式的文本,因为它是 html_safe 会给我们没有标签的 html 格式的文本,但它不能在标题中工作-> 工具提示 你不能把html(比如<b>标签)放在一个属性里面,包括title属性。如果您想要具有良好格式而不是标准标题的“丰富”弹出窗口,那么您将需要使用 javascript 来模仿 title 属性的效果。如果您使用的是像 Bootstrap 这样的“网络库”,那么它已经带有这个功能,称为“弹出框”。 @MaxWilliams, title -> 文本来自数据库,如:title => (@project.description).html_safe,但不是静态格式。由于描述字段将文本与格式的 html 标签混合。是的,正如你所说,我们需要使用 javascript 库,因为标准标题行不通。 您的代码准确。如果您查看查询响应,您应该会看到 <a href="#" title="<b>sample</b>">test</a>。它是您的浏览器,它替换了 dom 属性中的 html 特殊字符。 【参考方案1】:

最终实现如下,通过使用Jquery-ui工具提示

`

<%= link_to 'test', '#', :title => "<b>sample</b>", :id => "demo_box" %>`

    $(function()
      $('#demo_box').tooltip(
        content: function()
          var element = $( this );
          return element.attr('title')
        
      );
    );

`

【讨论】:

以上是关于html_safe 在 rails 的 link_to 标题属性中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4删除受模板JS影响的链接

Rails/ERB 与 Redcarpet:HTML 消失

从 Rails 3 控制器返回的凌乱“查看

Rails 3 - link_to 使用 jquery ajax 调用部分

在heroku上部署的rails应用程序和html代码出现在我的页脚中

在rails中带有jquery参数的link_to