【发布时间】:2017-03-07 12:58:33
【问题描述】:
我在 CK 编辑器 JS 框架中创建了插件。我能够为我的插件显示一个包含几个字段的对话框。但我需要控制 OK 和 Cancel 按钮的 css 属性,如标签、颜色等。这种定制可能吗?
【问题讨论】:
标签: javascript ckeditor customization
我在 CK 编辑器 JS 框架中创建了插件。我能够为我的插件显示一个包含几个字段的对话框。但我需要控制 OK 和 Cancel 按钮的 css 属性,如标签、颜色等。这种定制可能吗?
【问题讨论】:
标签: javascript ckeditor customization
有一个 override 方法可以覆盖传入的参数。它适用于我在 Ckeditor 4 上。试试吧:
CKEDITOR.dialog.add( 'getlinkDialog', function ( editor ) {
return {
title: 'Dialog title',
minWidth: 300,
minHeight: 70,
contents: [
{
id: 'getlink-basic',
label: 'Basic Settings',
elements: [
{
type: 'text',
id: 'link',
label: 'Enter your name'
}
]
}
],
buttons: [
CKEDITOR.dialog.okButton.override( { label : 'My Label'} ),
CKEDITOR.dialog.cancelButton.override( {} )
],
onOk: function() {
//Your code
}
};
});
【讨论】:
这里有两种方法:
CKEDITOR.dialog.definition#buttons 属性自定义按钮。CKEDITOR.dialog.okButton 方法 - 更老套,因此我建议您尝试第一个。【讨论】:
我搜索了很多,但没有一个漂亮的解决方案对我有用。这就是我使用丑陋但有效的解决方案的原因。
CKEDITOR.on( 'dialogDefinition', function( ev ) {
// Take the dialog window name and its definition from the event data.
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
console.log("dialogDefinition", dialogDefinition);
console.log("dialogName", dialogName);
setTimeout(function () {
console.log("$('.cke_dialog_ui_button_ok').length", $('.cke_dialog_ui_button_ok').length);
$('span', '.cke_dialog_ui_button_ok').html("Save");
}, 100);
});
您甚至不会注意到文本何时更改。如果有更好的选择,请分享。
【讨论】: