【问题标题】:Why is htmlpurifier removing allowed IMG tag?为什么 htmlpurifier 会删除允许的 IMG 标签?
【发布时间】:2012-03-05 16:01:11
【问题描述】:

我已将这个简单的格式错误的 HTML 放入 htmlpurifier demo page (link with my test html):

text1
<p></p>
<img src="/x.gif" alt="alt">
<div>text2</div>

我还指定了“p”和“img”标签的白名单。

但是,结果输出是这样的:

<p>text1
</p><p>
text2</p>

为什么 htmlpurifier 会删除 IMG 标签,即使它已被列入白名单?

【问题讨论】:

    标签: html htmlpurifier


    【解决方案1】:

    您必须告诉它明确允许srcalt 属性。在允许的 HTML 框中指定 ($HTML.Allowed):

    p
    img[alt|src]
    

    【讨论】:

    • 修复有帮助。显然 HTML Purifier 在 img 元素方面有一些奇怪之处:它抱怨缺少 alt 属性(可能是由于它解析 HTML 的方式),尽管另外说它是不允许的。此外,只有img 在白名单中,它会删除整个img 元素,而不仅仅是属性(而如果您使用例如&lt;p align=left&gt; 并将p 列入白名单而不是`p[align],它会删除属性但不是元素)。
    • 您看到粉红色框中的详细操作列表了吗?它告诉你它正在做的一切,所以当我收到不一致的消息(需要“alt”和删除“alt”)时,我认为工作中肯定有一些相互冲突的规则。由于您删除了所有属性并且没有内容,因此它也删除了选项卡,可能是因为它知道剩下的内容不会呈现任何内容。
    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多