Значение по умолчанию для флажка CKEditor - PullRequest
0 голосов
/ 07 сентября 2018

Я использую плагин CKEditor Enhanced Image (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

Я пытался обновить код, основываясь на ответе Марека, чтобы он соответствовал моим потребностям, но событие 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 );
    }
});

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать 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, чтобы проверить код в действии .

Наконец, мы работаем над решением, которое подойдет для вашего случая. Вы можете отслеживать это в https://github.com/ckeditor/ckeditor-dev/issues/2277

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...