根据Selection - CKEditor更新RichCombo的标签
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据Selection - CKEditor更新RichCombo的标签相关的知识,希望对你有一定的参考价值。
我有一个自定义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将会中断。 “文字”可以是你想要的任何东西。
以上是关于根据Selection - CKEditor更新RichCombo的标签的主要内容,如果未能解决你的问题,请参考以下文章