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

标签 javascript ckeditor richtextbox

我想对使用 CKEditor 中的图像工具栏按钮添加的图像做一些事情。 我实际上想获取 url 并在需要时进行修改。

我该怎么做?

我可以使用 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 );  
        };
    }
});

关于javascript - 如何更改 CKEditor 对话框生成的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17943053/

相关文章:

javascript - 强制定向图错误, "Cannot Read Property ' Push' of Undefined"

javascript - Safari 推送通知返回拒绝而不询问

Javascript - 自动从数据库加载 php 数据

javascript - 特定部分的 ckeditor

wpf - 检测 RichTextBox 中插入符号位置何时发生变化

javascript - 运行 Gulp 会抛出错误 "Cannot find module ' ./lib/_stream_writable.js'”

php - 如何修改 CKEditor 中的 'Format' 下拉列表?

jquery - CKEditor 将 css 应用于对话框 html 元素内容

javascript - 如何在 GWT RichTextArea 中设置光标位置

javascript - 在pasteHTML之前的document.execCommand不起作用