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