CKEditor复选框默认值

问题描述 投票:1回答:1

我正在使用CKEditor的增强图像插件(image2),因为它允许用户插入标题图像。但是,我默认情况下无法启用“标题图片”复选框。

enter image description here

在下面的代码之后设置断点显示该值已被选中,但是继续再次取消选中它。

CKEDITOR.on( 'dialogDefinition', function( ev ) {
// Take the dialog name and its definition from the event data.
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;

if (dialogName == 'image2') {
    dialogDefinition.onShow = function() {
        captionField = this.getContentElement('info', 'hasCaption');
        captionField.setValue('checked');
        console.log(captionField);
        debugger;
    }
}
});

非常感谢任何关于如何勾选CKEditor复选框的建议。

UPDATE

我尝试根据Marek的答案更新代码以满足我的需求,但dialogShow事件似乎没有这样调用。

CKEDITOR.on('dialogShow', function( evt ) {
    var dialog = evt.data;
    if ( dialog._.name === 'image2' && !dialog.widget.isReady() ) {
        console.log('test');
        evt.data.getContentElement( 'info', 'hasCaption' ).setValue( true );
    }
});
javascript ckeditor ckeditor4.x
1个回答
0
投票

您可以使用dialogShow事件来修改对话框属性。

CKEDITOR.replace( 'editor1', {
    extraPlugins: 'image2',
    removePlugins: 'image',
    on: {
        dialogShow: function( evt ) {
            var dialog = evt.data;
            if ( dialog._.name === 'image2' && !dialog.widget.isReady() ) {
                evt.data.getContentElement( 'info', 'hasCaption' ).setValue( true );
            }
        }
    }
} );

请注意我正在检查窗口小部件是否实际存在的代码,这是因为如果它正在编辑现有窗口小部件,您不想修改此复选框。

由于我不知道的原因,代码在内置的SO代码平台中不起作用,所以我所能做的就是放弃codepen link to check the code in action

最后,我们正在制定一个适合您案例的解决方案。你可以在https://github.com/ckeditor/ckeditor-dev/issues/2277上找到它

© www.soinside.com 2019 - 2024. All rights reserved.