【问题标题】:sanitize and raw still showing html tags, Slimsanitize 和 raw 仍然显示 html 标签,Slim
【发布时间】:2016-09-06 10:27:25
【问题描述】:

我有一个包含 html 文本的评论数据,我想显示没有任何标签的 html 渲染。

我正在与 RoR 和 slim 合作。

我试过sanitizerawhtml_safe。但他们都给了我相同的结果。他们删除了一些 html,但我仍然看到 html 标签。

使用前的数据:

<img alt="User-added image" src="https://rrrrr;amp;feoid=00N2400000H7Rxb&refid=0EM7E0000004FgN" style="height: 333px; width: 500px;"></img><br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam 

使用后的数据:

    = raw resource.comments
    = sanitize resource.comments
    = strip_tags "'#{resource.comments}'"
    = ActionView::Base.full_sanitizer.sanitize(resource.comments)

def formatted_comments
  h.sanitize(comments, :tags => [], :attributes => [])
end 

 = formatted_comments

结果:

<img alt="User-added image" src="https://rrrrr;feoid=00N2400000H7Rxb&amp;refid=0EM7E0000004FgN" style="height: 333px; width: 500px;"></img><br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam 

更新:

我注意到呈现的 html 标记包含以下内容。 " my result of html tags here " = $0 试图手动删除它,所有的 html 都被渲染了!

【问题讨论】:

    标签: html ruby-on-rails slim-lang


    【解决方案1】:

    试试这个。它可能有效

    rich_text = "<h1 class='some', some_other='some'>This is sentense </h1>"
    
    helper.sanitize(rich_text, :tags => [], :attributes => [])
    

    文档在这里 sanitize_helper

    【讨论】:

    • 它在问题中给出了相同的结果。我仍然看到标签。
    【解决方案2】:

    您可以使用strip_tags,它会通过删除所有html标签返回结果

    str = "<img alt='User-added image' src='https://rrrrr;feoid=00N2400000H7Rxb&amp;refid=0EM7E0000004FgN' style='height: 333px; width: 500px;'></img><br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"
    

    瘦身使用

    = strip_tags str
    
    #=> "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"
    

    【讨论】:

    • 它再次给出原始值:D
    • original value是什么意思
    • 你在&amp;lt;img alt=&amp;quot;User-added image&amp;quot;上试试
    【解决方案3】:

    我终于可以像下面那样做

     CGI.unescapeHTML(text).html_safe
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2017-03-22
      • 2021-03-21
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多