如何将自定义按钮和对话框迁移到TinyMCE 5

时间:2019-03-05 07:22:31

标签: javascript jquery tinymce-5

我有一个第三方Bootstrap插件(可能是EOL),它在工具栏上添加了按钮,依次打开了一个对话框,从中可以选择Bootstrap元素添加到内容中。

它使用了以下代码:

@Id

但是它说Factory是未定义的,或者create是一个不存在的函数。我可以用什么来使这项工作,显示按钮以及单击时显示对话框?我已经更新了以下代码来查看bsItems:

var insertBtn = tinymce.ui.Factory.create({
    type: elType,
    classes: elClass,
    text: bsText['button'],
    icon: 'icon-btn',
    name: 'insertBtnBtn',
    tooltip: bsTip['button'],
    onclick: function() {
        showDialog('bootstrap-btn.php', 'Add button', 580, 'bsBtn');
    }
});
bsItems.push(insertBtn);

我尝试了其他几种可能性来找到创建函数:

editor.ui.registry.addButton('bootstrap', {
    type: 'buttongroup',
    classes: 'bs-btn',
    items: bsItems
});

全部无济于事

1 个答案:

答案 0 :(得分:1)

对于版本5,TinyMCE使用了新的UI框架。为版本4.x编写的提供自定义UI控件元素的第三方插件可能不适用于版本5。

this GitHub issue thread中所述,tinymce.ui.Factory已被弃用,不会重新实现,因此不再可能创建控制工厂。

添加UI元素(如按钮)的方法也已从v4更改为v5。 official migration guide详细介绍了这些方法的新位置和配置签名。

tl; dr这个特定的插件可能无法与v5的新UI框架一起使用,但是仍然有使用新系统自定义UI的方法。