To do this, you must observe 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' );
You can also delete existing fields:
var someTab = def.getContents( 'someTab' ); someTab.remove( 'someField' );
Or change them:
var input = someTab.get( 'input' ); input[ 'default' ] = 'www.example.com';
Or event to delete the whole tab:
def.removeContents( 'anotherTab' );
source share