我有一个自定义 RichCombo 以允许选择字体。它通过一些数据并创建其选项,而“特殊功能”由具有相应字体系列集的跨度组成,而不仅仅是纯文本。
现在我想更改/更新此 RichCombo 框的 value
或 label
,无论是在每次更改还是从外部。基本上,它应该与默认字体选择框完全一样。
editor.ui.addRichCombo( 'FontFamily', {
multiSelect : false,
label: 'Schriftart',
title: 'Schriftart',
className: 'cke_format',
panel: { css:[CKEDITOR.skin.getPath("editor")].concat(editor.config.contentsCss) },
toolbar: 'font',
init: function() {
for (var i=0; i < allFonts.length; i++) {
this.add(
allFonts[i].class,
'<span class="'+ allFonts[i].class +'">' + allFonts[i].label + '</span>',
allFonts[i].label
);
};
},
onClick: function(value) {
updateFontCorrectly();
}
}
请注意,updateFontCorrectly()
函数实际上还有更多代码。
我希望能够做类似的事情
this.setValue("Times New Roman");
(而是通过一个变量),从 onClick
函数内部以及从外部全局传递。
理论上,上面的代码可以工作,但在一次使用后就会完全破坏盒子。某些类 jQuery 目标(深入 CKEditor 源代码)似乎在使用一次后失败,并且 RichCombo 拒绝打开。
我已经把它剥离成
this._.value = "Times New Roman";
但这也会在使用一次后中断。
我必须在这里完全遗漏一些东西。我怎样才能让它工作?
最佳答案
事实证明,这真的很简单。
this.setValue(foo, "Text");
唯一棘手的部分是 foo
必须是一个有效值,因为它存在于 this._.items
中。
如果它无效,richCombo 将中断。 “文本”可以是您想要的任何内容。
关于javascript - 根据选择更新 RichCombo 的标签 - CKEditor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33829547/