TinyMCE初始化后如何更新mergetags_list?寻求实现示例
直接重复调用tinymce.init()不会生效,因为编辑器实例已经创建完成。你需要通过编辑器实例的API动态修改配置并刷新相关UI组件,具体步骤如下:
获取目标编辑器实例
如果你知道编辑器的ID,直接用tinymce.get()获取;如果是当前活跃的编辑器,也可以用tinymce.activeEditor:const editor = tinymce.get('your-editor-id'); // 替换为你的编辑器ID更新合并标签列表配置
使用editor.options.set()方法修改mergetags_list的配置值:// 定义新的合并标签列表 const newMergeTags = [ { value: 'user.name', title: '用户名' }, { value: 'user.email', title: '用户邮箱' }, { value: 'article.date', title: '文章日期' } ]; // 更新编辑器配置 editor.options.set('mergetags_list', newMergeTags);刷新合并标签的下拉菜单
配置更新后,需要让合并标签按钮重新生成菜单选项。通过编辑器的UI注册表找到对应的按钮,重新定义其菜单生成逻辑并刷新:const mergeTagsMenuButton = editor.ui.registry.getMenuButton('mergetags'); if (mergeTagsMenuButton) { // 重新绑定菜单生成函数,读取最新的配置 mergeTagsMenuButton.menu = () => { return editor.options.get('mergetags_list').map(tag => ({ type: 'menuitem', text: tag.title, onAction: () => { editor.insertContent(`{{${tag.value}}}`); } })); }; // 刷新按钮的UI状态 editor.ui.registry.refresh('mergetags'); }
完成以上操作后,点击合并标签按钮就能看到更新后的列表了。
注意:如果你的合并标签插件有自定义渲染逻辑,可能需要根据实际情况调整菜单生成代码,但核心思路都是先更新配置,再刷新对应的UI组件。
内容的提问来源于stack exchange,提问作者Code-Monkey-Armis
相关产品推荐
相关产品推荐

