首页 文章

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

提问于
浏览
4

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

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

1 回答

  • 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' );
    

相关问题