2010-12-16 37 views
11

如何在HtmlPurifier中允许自定义(html5 data- *)属性?htmlpurifier自定义属性

输入:

<img src="/my.jpg" data-type="5" alt="" /> 

导致一个错误:

Attribute 'data-type' in element 'img' not supported 
(for information on implementing this, see the support forums) 

HtmlPurifier选项被设置为:

'HTML.AllowedAttributes' => array('img.src', 'a.href', 'img.data-type') 
+0

如果你需要改进你的问题,随时编辑它。如果您有答案,请随时发布 – 2010-12-16 22:16:31

回答

18

HTML净化器定义了属性的矩阵符合标准和当您尝试使用未在此矩阵中定义的属性时抱怨。但是,您可以根据以下步骤添加新的属性,以使用功能HTMLDefinition默认定义::的addAttribute():

$config = HTMLPurifier_Config::createDefault(); 
$def = $config->getHTMLDefinition(true); 
$def->addAttribute('img', 'data-type', 'Text'); 
$purifier = new HTMLPurifier($config); 

HTMLDefinition::addAttribute定义的更多细节。 'Text'这里是属性类型,你可以从AttrTypes.php找到默认属性类型