首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HTMLPurifier中允许元素具有相同的允许自定义属性?

如何在HTMLPurifier中允许元素具有相同的允许自定义属性?
EN

Stack Overflow用户
提问于 2020-02-01 00:47:24
回答 1查看 150关注 0票数 2

我打算添加一个带有"a“元素的自定义属性”custom -type“,同时只允许"h1”和"a“元素。

我尝试以下代码:

代码语言:javascript
复制
    $config= HTMLPurifier_Config::createDefault();
    $config->set('Attr.EnableID',true);
    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('a', 'custom-type', 'Text');
    $config->set('HTML.Allowed', 'h1,a[href|id|custom-type]');
    $html_purifier = new \HTMLPurifier($config);        
    $clean_html = $html_purifier->purify($str);

它会生成如下错误:

“在文件中的第69行调用完成后,无法设置指令”

我想知道上面的代码有什么问题。如有任何建议,我们将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-02-01 17:55:25

我解决了这个问题。在改变上述代码的顺序后,它的工作方式如下:

代码语言:javascript
复制
$config= HTMLPurifier_Config::createDefault();
$config->set('Attr.EnableID',true);
$config->set('HTML.Allowed', 'h1,a[href|id|custom-type]');
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'custom-type', 'Text');
$html_purifier = new \HTMLPurifier($config);        
$clean_html = $html_purifier->purify($str);

首先设置规则,然后将getHTMLDefinition( true )设置为true以检索先前设置的规则的副本,最后添加自定义属性。

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

https://stackoverflow.com/questions/60008039

复制
相关文章

相似问题

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