这是我的自定义插件的代码。
CKEDITOR.plugins.add('priority', {
requires: ['richcombo'],
init: function(editor) {
var tags = [];
// ajax call to load the the items
editor.ui.addRichCombo('priority', {
label: "Select Priority",
title: "Select Priority",
voiceLabel: "Select Priority",
className: 'cke_format',
panel: {
css: [editor.config.contentsCss, CKEDITOR.skin.getPath("editor")],
voiceLabel: editor.lang.panelVoiceLabel,
multiSelect: false,
},
init: function() {
this.startGroup("Priority Group1");
//this.add('value', 'drop_text', 'drop_label');
for (var this_tag in tags) {
this.add(tags[this_tag][0], tags[this_tag][1], tags[this_tag][2]);
}
},
onClick: function(value) {
editor.focus();
this.setValue(value);
editor.fire('saveSnapshot');
}
});
}
});
意外行为是指我选择一个元素,然后在文本区域内单击以写入已取消的组合所选项目,并显示默认值。 我需要显示所选项目。
我在this question中遇到了同样的问题,但解决方案没有修复它
答案 0 :(得分:0)
我打开了源文件ckeditor.js,然后我使用http://unminify.com/
取消了它调试后我发现行调用setValue函数并将空字符串传递给它,这导致在运行时每次选择后丢失所选项目。
我停止了这一行,问题随我解决了,我不知道停止此行是否会影响其他功能; 但是我认为没有人需要插件在没有他的意愿的情况下重置控件 我检查了我的所有需求,但这并没有影响他们。
您需要在停止上线后保持选择,处理onlick事件如下
// add the menu to the editor
editor.ui.addRichCombo('myCombo',
{
label: "DefaultText",
title: "Title",
multiSelect: false,
panel: { css: [CKEDITOR.skin.getPath("editor")].concat(editor.config.contentsCss) },
init: function () {
//add items of the combo
for (var i in strings) {
this.add(strings[i][0], strings[i][1], strings[i][2]);
}
},
onClick: function (value) {
this.setValue(value, this._.items[value]);
// add your code
}
});