如何更改CKEditor对话框生成的数据



我想对使用CKEditor中的"图像"工具栏按钮添加的图像做一些处理。我真的想得到网址,并修改,如果需要的话。

我该怎么做?

我可以使用dataFilter来做这些事情,但只有当图像被直接粘贴到编辑但当使用编辑器中默认的"图像"按钮添加图像时,dataFilter规则不会执行。

CKEDITOR.replace( 'idContent' );
CKEDITOR.on( 'instanceReady', function( e ) {
    CKEDITOR.instances.idContent.dataProcessor.dataFilter.addRules( {
        elements: {
            "img": function (element) {
                var imageSrcUrl = element.attributes.src;    
                // Do some stuffs here.     
            }
        }
    } );
} );

我使用以下代码实现了我的目的

CKEDITOR.on( 'dialogDefinition', function( ev ) {
    // Take the dialog name and its definition from the event data
    var dialogName = ev.data.name,
        dialogDefinition = ev.data.definition;
    if ( dialogName == 'image' ) {
        var onOk = dialogDefinition.onOk;
        dialogDefinition.onOk = function( e ) {
            var input = this.getContentElement( 'info', 'txtUrl' ),
                imageSrcUrl = input.getValue();
            //! Manipulate imageSrcUrl and set it 
            input.setValue( imageSrcUrl );
            onOk && onOk.apply( this, e );  
        };
    }
});

最新更新