html - Rails -- h.simple_format 修复
问题描述
这是我的代码:
= h.simple_format(item.text.text, class: 'basic')
并且item.text.text
是"<p><span style=\"color: rgb(251, 213, 181);\">asdasdasd</span></p>"
,但是当我看到在检查中呈现的视图时,该style=\"color: rgb(251, 213, 181);\"
属性消失了!
如何解决这个问题!(注:我需要class: 'basic'
!)
解决方案
simple_format
fromActionView::Helpers::TextHelper
有默认选项sanitize: true
通过将和标记转换为常规文本并删除所有“onxxx”属性来清理 html(以便无法执行任意 Javascript)。它还删除了以“javascript:”开头的 href= 和 src= 属性。您可以通过在加载此模块之前定义 VERBOTEN_TAGS 和 VERBOTEN_ATTRS 来修改要清理的内容。
要防止删除样式属性:
simple_format(item.text.text, { class: 'basic' }, sanitize: false)
<p>
inside<p>
在所有 HTML 标准中都是无效的,因为开始<p>
标签会自动关闭<p>
元素:
#item.text.text => "<p><span style=\"color: rgb(251, 213, 181);\">asdasdasd</span></p>"
simple_format(item.text.text, { class: 'basic' }, sanitize: false, wrapper_tag: "div")
#=> "<div class=\"basic\"><p><span style=\"color: rgb(251, 213, 181);\">asdasdasd</span></p><div>"
推荐阅读
- javascript - 使用开始和停止按钮循环浏览网页
- sql - 语言“plpgsql”只需要一个 AS 项;
- c - 有没有办法制作一个错误计数器,在特定数量的用户输入后终止程序?
- amazon-web-services - 如何限制对 ALB 的访问,使其仅从 AWS 中的 Ec2 机器读取流量?
- python - 根据时间过滤数据框中的某些行
- css - 从不同服务器访问时网页容器的不同外观(仅限 GOOGE CHROME)
- java - 如何使用 groupingBy 收集器创建对象列表而不是地图?
- python - 无法将 Cloud Function 连接到 Cloud SQL
- google-apps-script - 如何在谷歌脚本中使用列值过滤器?
- python-3.x - 具有多个子类的单个 django 数据模型,仅用于方法