我有一个自定义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";
但是在一次使用后它也会中断。
我必须在这里完全遗漏一些东西。我怎样才能让它发挥作用?
答案 0 :(得分:2)
事实证明,这很简单。
this.setValue(foo, "Text");
唯一棘手的部分是foo
必须是有效值,因为它存在于this._.items
中。
如果它无效,richCombo将会中断。 &#34;文本&#34;可以是你想要的任何东西。