TinyMCE 6.*版本如何在运行实例中设置新选项?
在TinyMCE 6.x中动态修改运行实例配置的方法
TinyMCE 6.x支持修改已运行实例的配置,但UI相关的配置(比如toolbar)仅修改选项不会自动更新界面——这也是你用editor.options.set()后没看到效果的原因。以下是具体解决方案:
核心说明
TinyMCE 6.x已废弃旧版的editor.settings属性,必须通过editor.options API来访问和修改配置。但像toolbar、menubar这类涉及界面渲染的配置,修改选项后需要手动触发UI组件的重新渲染,才会生效。
动态修改Toolbar的步骤
- 更新配置选项:先用
editor.options.set()修改toolbar的配置 - 重新渲染工具栏:调用工具栏组件的
render()方法,让界面更新
示例代码:
// 获取目标编辑器实例 const editor = tinymce.get('your-editor-id'); // 修改toolbar配置 editor.options.set('toolbar', 'bold italic | alignleft aligncenter | link image'); // 重新渲染工具栏,使变更生效 editor.ui.getToolbar('toolbar').render();
其他UI类配置的修改方式
对于menubar这类类似的UI组件,操作逻辑一致:
// 修改菜单栏配置 editor.options.set('menubar', 'file edit view'); // 重新渲染菜单栏 editor.ui.getMenubar('menubar').render();
非UI类配置的修改
对于不涉及界面渲染的配置(比如content_css、autosave_interval),仅用editor.options.set()即可生效,无需额外操作:
// 动态修改自动保存间隔 editor.options.set('autosave_interval', 30000);
初始化阶段修改配置的注意点
如果是在初始化过程中(比如init_instance_callback或setup钩子)修改配置,需要确保在编辑器初始化完成后操作:
tinymce.init({ selector: '#your-editor-id', setup: function(editor) { editor.on('init', function() { // 初始化完成后修改配置 editor.options.set('toolbar', 'bold italic | link'); editor.ui.getToolbar('toolbar').render(); }); } });
内容的提问来源于stack exchange,提问作者Yuriy Monstre Ovdeyev
相关产品推荐
相关产品推荐

