CKEditor插件 - 如何以正确的方式触发DialogCommand

时间:2014-10-14 06:49:13

标签: javascript ckeditor

以前,点击工具栏按钮,我会立即启动自定义对话框。

editor.addCommand('launch', new CKEDITOR.dialogCommand('myLaunchDialog'));

但是,现在,我希望

  1. 单击工具栏按钮时首先执行网络活动。
  2. 完成网络活动后,启动自定义对话框。
  3. 这就是我想要做的事情

    editor.addCommand('launch', {
        exec : function( editor ) {
            performNetworkActivity(function() {
                // Network activity done!
    
                var command = new CKEDITOR.dialogCommand('myLaunchDialog');
                // Hem... doesn't work
                editor.execCommand(command);
            });
        }},
        async : false
    });
    

    注意,execCommand对我不起作用。

    var command = new CKEDITOR.dialogCommand('myLaunchDialog');
    // Hem... doesn't work
    editor.execCommand(command);
    

    我甚至尝试过

    var command = new CKEDITOR.dialogCommand('myLaunchDialog');
    command.enable();
    command.exec();
    

    还没有工作......

    我可以知道以编程方式启动自定义对话的正确方法是什么?

    我的对话框定义为

    CKEDITOR.dialog.add('myLaunchDialog', function( editor ) {
    

1 个答案:

答案 0 :(得分:1)

这是触发对话框命令的正确方法。

var command = new CKEDITOR.dialogCommand('myLaunchDialog');
editor.addCommand('_myLaunchDialog', command);

editor.addCommand('launch', {
    exec : function( editor ) {
        performNetworkActivity(function() {
            // Network activity done!

            editor.execCommand("_myLaunchDialog");
        });
    }},
    async : false
});