Диалог ckeditor execCommand не отображается - PullRequest
0 голосов
/ 12 октября 2018

Я создал диалог в ckeditor.

    editor.ui.addButton('blublu',
            {
                label: 'blublu',
                command: 'blublu',
                icon: this.path + 'icons/blublu.png'
            }
    );
    editor.addCommand('blublu', new CKEDITOR.dialogCommand('blublu'));

    CKEDITOR.dialog.add( 'blublu', this.path + 'dialogs/dialog.js' );

Если я нажму кнопку, появится диалоговое окно, все в порядке.Теперь я пытаюсь открыть это окно из другого диалога:

( function() {
    CKEDITOR.dialog.add( 'templates', function( editor ) {
        return {
            title: editor.lang.templates.title,
            contents: [...],
            onHide: function(){
                if(condition)
                    //dostufff;
                this.hide();
                editor.execCommand('blublu');
            }
        }
    }
});

Это работает при первой загрузке редактора.Но если я открою диалог с помощью кнопки в toolbar и закрою его, я не смогу открыть диалог из диалога «Шаблоны».У меня темный фон , как будто там не отображается диалоговое окно, где показано, кроме диалогового окна.Он скрыт и просто показывает, что этого недостаточно, потому что все обработчики кнопок на нем не работают.

У меня нет ошибок в консоли.

Есть решение?

1 Ответ

0 голосов
/ 17 октября 2018

Я протестировал его с существующими плагинами, и похоже, что вам нужно асинхронно вызывать execCommand с setTimeout.

setTimeout( function() {
    execCommand( commandName );
} );

Если исправление не работает для каждого браузера, вам придетсядобавить небольшую задержку.Я не вижу лучшего решения.

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