簡體   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