javascript - 根据选择更新 RichCombo 的标签 - CKEditor

标签 javascript ckeditor

我有一个自定义 RichCombo 以允许选择字体。它通过一些数据并创建其选项,而“特殊功能”由具有相应字体系列集的跨度组成,而不仅仅是纯文本。

Font Selector

现在我想更改/更新此 RichCombo 框的 valuelabel,无论是在每次更改还是从外部。基本上,它应该与默认字体选择框完全一样。

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/

相关文章:

ckeditor 4.5 fileUploadRequest 事件未触发

javascript - CKeditor单选垂直

javascript - 仅使用 JavaScript 中的 Parse 验证密码

ckeditor - 有没有办法在ckeditor插件中使用默认 "icons"?

javascript - Chrome 和弹出窗口名称

javascript - 带参数的 Jquery 函数

javascript - CKeditor allowedContent 行为异常

ckeditor - 更改 ckEditor 的背景颜色

javascript - React 删除推送历史记录中多余的问号

javascript - 使用HTML/Javascript中的Analytics(分析)跟踪 strip 转换