CKEDITOR 4 - dtd:如果我更改 b 元素值,其他元素也会像 p 元素一样更改

CKEDITOR 4 - dtd: If i change b element values, others also change like p elements

我正在使用 CKEDITOR 4 并向 dtd 添加了一个新元素。我的自定义元素可以包含在“p”元素中,但我不希望它包含在“b”元素中。然后,现在我有了这个:

alert( !!CKEDITOR.dtd[ 'p' ][ 'mycustomtag' ] ); // **true**

alert( !!CKEDITOR.dtd[ 'b' ][ 'mycustomtag' ] ); // **true**

所以我执行以下操作:

CKEDITOR.dtd.[ 'b' ][ 'mycustomtag' ] = 0;

但在这之后我再次检查并:

alert( !!CKEDITOR.dtd[ 'p' ][ 'mycustomtag' ] ); // **false**

alert( !!CKEDITOR.dtd[ 'b' ][ 'mycustomtag' ] ); // **false**

似乎 b 和 p 元素以某种方式分组......但我想得到这个:

alert( !!CKEDITOR.dtd[ 'p' ][ 'mycustomtag' ] ); // **true**

alert( !!CKEDITOR.dtd[ 'b' ][ 'mycustomtag' ] ); // **false**

我找不到只改变元素 b 的方法...任何人都知道如何得到它?

谢谢。

我终于找到了解决办法。

包括整​​体而不是部分重新定义 dtd 元素(b 和 p),如下所示:

CKEDITOR.dtd.b = { '#': 1, a: 1, abbr: 1, *mycustomtag: 0*, acronym: 1, applet: 1, 
area: 1, audio: 1, font: 1, i: 1, iframe: 1, ... }

CKEDITOR.dtd.p = { '#': 1, a: 1, abbr: 1, *mycustomtag: 1*, acronym: 1, applet: 1, 
area: 1, audio: 1, font: 1, i: 1, iframe: 1, ... }

我不知道这是否是最优雅的解决方案,但效果很好。

亲切的问候。