我正在使用 CKEditor,并且我编写了一个弹出 CKEditor 对话框的插件。
我需要重新设计 ok 按钮并向页脚添加更多元素,如文本框和复选框,但这样做似乎很复杂,所以我隐藏了页脚部分并在对话框内容中创建了一个 uiElement需要但现在我想要的是触发隐藏页脚中的 okButton 但我找不到方法来做到这一点..
任何人?!
我正在使用 CKEditor,并且我编写了一个弹出 CKEditor 对话框的插件。
我需要重新设计 ok 按钮并向页脚添加更多元素,如文本框和复选框,但这样做似乎很复杂,所以我隐藏了页脚部分并在对话框内容中创建了一个 uiElement需要但现在我想要的是触发隐藏页脚中的 okButton 但我找不到方法来做到这一点..
任何人?!
可能有更好的方法,但我是这样做的:
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(我假设您已经去过那里!! !)
您可以尝试在您的 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)