[英]How to disable CKEditor context menu?
有人知道如何禁用CKEditor的上下文(右鍵單擊)菜單嗎? 我期待一個配置選項,但我找不到一個。 我正在使用v3.1。 謝謝。
從版本3.6.4開始,此問題中的其他答案不再起作用。 請參閱錯誤#9284
需要禁用的三個插件(使用本問題中討論的方法)是contextmenu
, liststyle
和tabletools
。 例如,使用配置文件:
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.