如何自定义ckeditor 4.2内置插件,如链接?

时间:2013-08-08 18:50:15

标签: ckeditor customization

如果我想在链接插件中添加选项卡,那么最佳实践方法是什么?我不想改变发布代码,只需使用我的自定义版本覆盖它。所以用新版本更新很容易。 CKEDITOR 4.2是否有这方面的操作方法?我正在使用新的内联样式工具栏。

如果我获得源代码,我可以重建没有链接插件的发布版本吗?然后使用我自定义版本的链接插件做一个外部插件?

1 个答案:

答案 0 :(得分:10)

您必须观察dialogDefinition事件才能执行此操作:

CKEDITOR.on( 'dialogDefinition', function( evt ) {
    var dialog = evt.data;

    if ( dialog.name == 'link' ) {
        // Get dialog definition.
        var def = evt.data.definition;

        // Add some stuff to definition.
        def.addContents( {
            id: 'custom',
            label: 'My custom tab',
            elements: [
                {
                    id: 'myField1',
                    type: 'text',
                    label: 'My Text Field'
                },
                {
                    id: 'myField2',
                    type: 'text',
                    label: 'Another Text Field'
                }
            ]
        });

    }
} );

CKEDITOR.replace( 'editor1' );

您还可以删除现有字段:

var someTab = def.getContents( 'someTab' );
someTab.remove( 'someField' );

或修改它们:

var input = someTab.get( 'input' );
input[ 'default' ] = 'www.example.com';

或事件删除整个标签:

def.removeContents( 'anotherTab' );