如何解决CKEDITOR 4 - dtd:如果我改变了 b 元素的值,其他人也会像 p 元素一样改变
我正在使用 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**
谢谢。
解决方法
我终于找到了解决方案。
包括重新定义全部而不是部分的 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,*mycustomtag: 1*,... }
我不知道这是否是最优雅的解决方案,但效果很好。
亲切的问候。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。