0

システムで HTMLPurifier を使用していますが、何らかの理由で次のように変換されます。

<div class="item-horizontal mrb14" id="traditional">
<a href="/" title="Traditional">
<h3>Traditional</h3>
</a>
</div>

このようなものに:

<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>

構成に何を追加すればよいですか? - 私の現在のセットアップは次のとおりです。

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);
4

1 に答える 1

0

インライン要素h3であるタグ内にブロック要素をネストしています。anchor (a)html5 を使用している場合はまったく問題ありませんが、doctype として xhtml 1.0 を使用している場合はそうではありません。

html5doctorの例を次に示します。

編集:少しグーグルでこの投稿にたどり着きました。これは私の疑惑を強調しています

于 2011-10-27T16:50:49.683 に答える