首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HtmlPurifier重复链接

HtmlPurifier重复链接
EN

Stack Overflow用户
提问于 2011-10-28 00:22:49
回答 1查看 134关注 0票数 0

我在我的系统中使用HTMLPurifier,出于某种原因,它会转换成这样的东西:

代码语言:javascript
复制
<div class="item-horizontal mrb14" id="traditional">
<a href="/" title="Traditional">
<h3>Traditional</h3>
</a>
</div>

变成类似这样的东西:

代码语言:javascript
复制
<div class="item-horizontal mrb14" id="anchor-traditional">
    <a href="/" title="Traditional"></a>
    <h3><a href="/" title="Traditional">Traditional</a></h3>
    <a href="/" title="Traditional"></a>
</div>

你知道我应该在配置中添加什么吗?-我当前的设置是:

代码语言:javascript
复制
require_once('HTMLPurifier.auto.php');
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('Attr.AllowedFrameTargets', array('_blank'));
$config->set('HTML.Trusted', true);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
$config->set('Filter.Custom',  array( new HTMLPurifier_Filter_SafeIframe() ));
$config->set('Attr.EnableID', true);
$config->set('Attr.IDPrefix', 'anchor-');
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'URI');
$def->addAttribute('a', 'rel', 'CDATA');
$objPurifier = new HTMLPurifier($config);
return $objPurifier->purify($string);
EN

回答 1

Stack Overflow用户

发布于 2011-10-28 00:50:50

您正在anchor (a)标记中嵌套一个块元素h3,这是一个内联元素。如果你使用的是html5,那就完全没问题了,但是如果你的文档类型是xhtml1.0,那就不行了。

这是html5doctor的一个例子。

编辑:通过谷歌搜索,我找到了这篇强调我的suspicion的帖子

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7919123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档