2

我正在使用 CKEditor,并且我编写了一个弹出 CKEditor 对话框的插件。

我需要重新设计 ok 按钮并向页脚添加更多元素,如文本框和复选框,但这样做似乎很复杂,所以我隐藏了页脚部分并在对话框内容中创建了一个 uiElement需要但现在我想要的是触发隐藏页脚中的 okButton 但我找不到方法来做到这一点..

任何人?!

4

2 回答 2

4

可能有更好的方法,但我是这样做的:

var ckDialog = window.CKEDITOR.dialog.getCurrent(),
    ckCancel = ckDialog._.buttons['cancel'],
    ckOk = ckDialog._.buttons['ok'];

ckOK.click();

诀窍是获取按钮,然后使用 CKEditor Button API 来模拟点击。由于某种原因,我无法调用 dialog.getButton('ok') 因为 getButton 由于某种原因未定义。我的方法深入研究了私人数据,我怀疑这是最好的方法。

从 onShow 事件(定义对话框时),我能够得到 ok 按钮,如文档所示:

onShow: function () {
    var okBtn = this.getButton('ok');
    ...
}

这是 Button API:http ://docs.ckeditor.com/#!/api/CKEDITOR.ui.dialog.button ,您也可以在那里访问对话框 API(我假设您已经去过那里!! !)

于 2013-02-05T04:54:59.083 回答
3

您可以尝试在您的 plugin.js 中添加这一行。

var dialog = this.getDialog();
document.getElementById(dialog.getButton('ok').domId).click();

在我的自定义插件中,我只是隐藏“确定”按钮而不是整个页脚。下面是我的 plugin.js 语句的一部分。

{
    type : 'fileButton',
    id : 'uploadButton',
    label : 'Upload file',
    'for' : [ 'tab1', 'upload' ],
    filebrowser :
    {
        action : 'QuickUpload',
        onSelect : function(fileUrl, data){
            var dialog = this.getDialog();
            dialog.getContentElement('tab1','urlTxt').setValue(fileUrl);
            document.getElementById(dialog.getButton('ok').domId).click();
        }
    }
}

顺便说一句,我正在使用CKEditor 4.0(修订版 769d96134b)

于 2013-02-01T02:46:14.167 回答