【问题标题】:How to allow style attributes in HTML Purifier filtering如何在 HTML Purifier 过滤中允许样式属性
【发布时间】:2011-12-10 10:34:23
【问题描述】:

我在使用 HTMLPurifier 删除我的样式标签时遇到问题。这是我使用的(测试)配置:

$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'HTML 4.01 Transitional'); // replace with your doctype
$config->set('Cache.DefinitionImpl', null);
$config->set('HTML.AllowedElements','div');
$config->set('HTML.AllowedAttributes', "*.style");
$config->set('CSS.AllowedProperties', 'background-color');

当我过滤这个 HTML 时:

<div style="background-color: #fff;">test</div>
<div style="border: 1px solid #000;">test</div>

这是我得到的:

<div>test</div>
<div style="border:;">test</div>

我不明白为什么要留下边框属性(但它的值被剥离),以及为什么要删除背景颜色属性。如何配置以便允许这些样式标签通过过滤器?另外,我想允许我允许的样式属性的任何样式值。

【问题讨论】:

  • 即使你注释掉你的配置,它会被删除吗?
  • 我很抱歉 - 经过几个小时的故障排除后,我发现了错误,它与 HTML Purifier 无关。修复后,配置设置按预期工作。感谢伟大的图书馆。

标签: htmlpurifier


【解决方案1】:

试试这个:

$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'HTML 4.01 Transitional');
$config->set('CSS.Trusted', 'HTML 4.01 Transitional'); // allow any css
$config->set('HTML.Allowed','div[style]');
$config->set('CSS.AllowedProperties', 'background-color');

这对我有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2016-12-27
    相关资源
    最近更新 更多