如何清除应用于元素的自定义样式?

时间:2015-05-25 21:42:42

标签: ckeditor

使用Ckeditor 4x,当您添加custom styles时,您无法使用“删除格式”enter image description here按钮,而不会删除样式(类)。

enter image description here

只有在使用默认样式时才能正常工作。

1 个答案:

答案 0 :(得分:0)

这里有几点需要解释,因为过去采取的设计决策并不像看起来那么简单。

  1. 默认情况下,仅使用RemoveFormat 删除内联样式。
  2. 要删除“样式”下拉列表应用的块样式,您需要在该下拉列表中取消选择它们(它在切换模式下工作)。你将留下像H1这样的原始标签,你可以借助格式下拉菜单将其更改为另一个标签,如P. 必须按此顺序完成。
  3. 似乎最好的解决方案是覆盖addRemoveFormatFilter方法。让我们举例说,您只想从h1-h3中删除格式:

    var editor = CKEDITOR.replace('textarea_id');
    editor.on( 'pluginsLoaded', function( ev ) {
        editor.addRemoveFormatFilter( function( element ) {
             return  element.is( 'h3' ) || element.is( 'h1' ) || element.is( 'h2' );
        });             
    });
    
  4. 当然,您可以在此处使用更高级的代码,而不仅仅是检查某些内容是否是特定元素。例如,您可以使用checkElementRemovable方法检查特定元素是否与特定样式匹配。

    请注意,必须选择整个块元素才能删除其格式。在某些情况下,一个包含浮动图像的标题可能需要使用元素的路径选择此元素,因为使用鼠标很难选择它。