我在1 1/2天内搜索ckeditor的整个文档,但我找不到解决方案。
到目前为止,我已根据我的要求配置了ckeditor,而ACF(高级内容过滤器)也正在运行。
我现在的问题是: 如果我从外部源插入,例如这样:
<table style="padding-left: 0px;">
<tr style="vertical-align: top;">
<td style="text-align: left;" width="179">
<p style="padding-bottom: 0px;">Gewicht Brutto</p>
</td>
</tr>
</table>
ckeditor过滤掉所有属性(完全没问题)并给我这个:
<table>
<tr>
<td>
<p>Gewicht Brutto</p>
</td>
</tr>
</table>
但我无法找到一种方法来删除<p>
- 标记,如果 - 和仅,如果它在<td>
内(我不想删除)所有<p>
,我也可以使用“在输入时插入<p>
”
使用所有ACF-configurations-stuff我只能定义允许或禁止哪些标记,或者可以使用哪些属性。
有没有人知道是否有办法删除特定父元素中不需要的元素?
非常感谢! 马丁
答案 0 :(得分:1)
<强>答案:强>
您可以使用&#39; 匹配&#39; property(如果将规则定义为对象),在disallowedContent中定义它。这意味着,只要匹配函数规则返回true,那么这些元素就会被过滤掉。
示例示例:
它从td元素中删除所有br元素(将父元素作为td元素)。您应该注意,在这种情况下,元素参数尚未到达DOM,因此它只是一个htmlParser.element。
'br' : {
match: function( element ) {
var aParent = element.getAncestor(),
aParentTagName = aParent.name;
if( typeof aParentTagName === 'string' &&
aParentTagName.toUpperCase() == 'TD' ) {
return true;
}
return false;
}
}
其他选项也退出: