繁体   English   中英

加载响应。 使用TinyMCE API卸载插件或MenuItem

[英]Load resp. unload Plugin or MenuItem using the TinyMCE API

我正在使用TinyMCE 4.0.x,API4进行工作的项目。 我有一些简单的自定义插件,例如:

tinymce.PluginManager.add('simplePlugin', function(editor, url) {
    editor.addButton('simplePluginButton', { 
        text: 'Simple Example', 
        icon: false, 
        onclick: function() { alert('Do something...'); } });

    editor.addMenuItem('simplePluginMenuItem', { 
        text: 'Simple Example', 
        context: 'tools', 
        onclick: function() { alert('Do something...'); } });
});

我要加载 resp。 使用TinyMCE API和按钮resp即时卸载 Plugin-MenuItemPlugin-Button (或Plugin !!)。 项目响应 插件名称(在我的情况下为simplePluginMenuItemsimplePluginButtonsimplePlugin )。

我面临的问题是我无法使用API来访问/查找插件或MenuItem /工具栏按钮!

我尝试了不同的方法,但没有成功! 例如:

  • 我可以使用tinymce.activeEditor.plugins获取和修改插件列表,但是如何使用API​​重新加载编辑器?
  • tinymce.ui命名空间具有MenuItem类,该类具有remove方法 -如何通过API查找MenuItem? 当我调用tinymce.activeEditor.editorManager.ui.Menu我正在获取类,而不是当前菜单实例! 有没有一种使用API​​检索当前菜单实例的方法?
  • 编辑器实例具有许多属性,但都不包含菜单或工具栏的属性。

我想念什么吗? 是否有使用API​​检索MenuItemToolbarButton或者该API仅可用于创建新的编辑器项。 组件?

像这样的伪代码

tinymce.activeEditor.getActiveMenu.findMenuItem('simplePluginMenuItem').remove();

我找到了这个旧的SO帖子 ,但是在那时(2009年),有人问这个问题,API版本4.0.x尚未发布。

我发现的一种可能的解决方案是提供自定义插件的工具栏按钮和菜单项,其中包含div元素的唯一ID:

tinymce.PluginManager.add('simplePlugin', function(editor, url) {
    editor.addButton('simplePluginButton', { 
        id  : 'simplePluginButton001',
        text: 'Simple Example', 
        icon: false, 
        onclick: function() { alert('Do something...'); } });

    editor.addMenuItem('simplePluginMenuItem', {
        id  : 'simplePluginMenuItem001',    
        text: 'Simple Example', 
        context: 'tools', 
        onclick: function() { alert('Do something...'); } });
});

现在,TinyMCE编辑器中生成的HTML代码如下所示:

<div    id="simplePluginButton001"
        role="button" 
        class="mce-widget mce-btn mce-first mce-last" 
        tabindex="-1" 
        aria-labelledby="simplePluginButton001">
            <button 
                role="presentation" 
                type="button" 
                tabindex="-1">
                    Simple Example
            </button>
</div>

并且div元素容器可以直接检索和操作(例如使用jQuery):

var pluginToolbarButton = $("#simplePluginButton001");
pluginToolbarButton.hide();
//pluginToolbarButton.show();
//pluginToolbarButton.remove();

这对于我的情况来说很好用-我可以建立菜单项列表。 工具栏按钮ID,应使其不可见。 可见。

不过,我希望我可以使用API​​进行此类操作-IMO更加优雅,而且似乎是正确的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM