簡體   English   中英

如何禁用CKEditor上下文菜單?

[英]How to disable CKEditor context menu?

有人知道如何禁用CKEditor的上下文(右鍵單擊)菜單嗎? 我期待一個配置選項,但我找不到一個。 我正在使用v3.1。 謝謝。

從版本3.6.4開始,此問題中的其他答案不再起作用。 請參閱錯誤#9284

需要禁用的三個插件(使用本問題中討論的方法)是contextmenuliststyletabletools 例如,使用配置文件:

CKEDITOR.editorConfig = function(config) {
    /* Your config options */
    ...
    config.removePlugins = 'contextmenu,liststyle,tabletools';
};

您需要刪除contextmenu插件。 請參閱此處獲取3.1。

Ckeditor 4.7.1

CKEDITOR.editorConfig = function (config) {
  config.language = 'en';
  config.toolbar = "mini";
  config.removePlugins = 'elementspath,contextmenu,liststyle,tabletools,tableselection';
  config.disableNativeSpellChecker = false;
}

Ckeditor 4.8.0 ('elementspath'插件不再需要刪除)

CKEDITOR.editorConfig = function (config) {
  config.language = 'en';
  config.toolbar = "mini";
  config.removePlugins = 'contextmenu,liststyle,tabletools,tableselection';
  config.disableNativeSpellChecker = false;
}

通過覆蓋初始化contextmenu行為的prototype函數,仍然有一個實用的解決方案:

CKEDITOR.dom.element.prototype.disableContextMenu = function () {
    this.on( 'contextmenu', function( event ) {
        // your contextmenu behavior
    });
};

注意:當CKEDITOR動態加載其JS資源時,您需要在replace調用之前將其放置。

我需要禁用以下所有內容才能使其正常工作。

config.removePlugins = 'language,tableresize,liststyle,tabletools,scayt,menubutton,contextmenu';

以前我們不需要語言或表格 - 但是更新版本的ckeditor似乎需要這樣做。

我在查看Chrome上F12開發工具的輸出時發現了這一點。

對於4.2版,我將以下內容放在config.js文件的末尾

CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});

您可以在站點的F12控制台窗口中使用以下代碼段找出特定CKEditor構建中的哪些插件需要contextmenu (假設您還為$.each提供了jQuery):

$.each(CKEDITOR.plugins, function(k, v){ 
    v.requires && console.log("Plugin '" + k + "' requires: " + v.requires) 
})

例如:

插件'tabletools'需要表格,對話框,上下文菜單

您可以使用它來幫助您使用config.removePlugins - 在我的情況下:

config.removePlugins = 'tabletools,contextmenu'

使用CKEditor 3.6,我可以通過刪除上面提到的contextmenu插件來禁用上下文菜單。 為此,您必須使用removePlugins選項配置編輯器。 例如:

CKEDITOR.replace('my_editor', {
    removePlugins : 'contextmenu'
});

它也可以從config.js文件全局禁用:

CKEDITOR.editorConfig = function(config) {
    /* Your config options */
    ...
    config.removePlugins = 'contextmenu';
};

不幸的是,因為CKEditor 3.6 / 4.0這不再起作用了。

請參閱錯誤報告: http//dev.ckeditor.com/ticket/9284

在CKEditor 4.x中,(我測試了4.2.2)你必須同時做到這兩點:

CKEDITOR.replace('my_editor', { removePlugins : 'contextmenu' });

CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = ''liststyle,tabletools,contextmenu'';
};

如果您不禁用它們,則所有這三個都將自動需要上下文菜單。

可以完全禁用上下文菜單,將此行添加到配置文件(tipical fckconfig.js):

FCKConfig.ContextMenu = [];

右鍵單擊按住Ctrl鍵,旁按上下文菜單並訪問拼寫檢查等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM