20

有人知道如何禁用 CKEditor 的上下文(右键单击)菜单吗?我希望有一个配置选项,但我找不到。我正在使用 v3.1。谢谢。

4

12 回答 12

37

从 3.6.4 版开始,此问题中的其他答案不再起作用。请参阅错误 #9284

需要禁用的三个插件(使用本问题中讨论的方法)contextmenuliststyletabletools。例如,使用配置文件:

CKEDITOR.editorConfig = function(config) {
    /* Your config options */
    ...
    config.removePlugins = 'contextmenu,liststyle,tabletools';
};
于 2012-08-31T13:26:14.200 回答
14

您需要删除该contextmenu插件。见这里3.1。

于 2010-02-11T18:24:43.877 回答
7

编辑器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;
}
于 2017-07-31T11:01:05.043 回答
3

仍然有一个实用的解决方案,通过重写初始化contextmenu行为的原型函数:

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

注意:当 CKEDITOR 动态加载其 JS 资源时,您需要将其放置在replace调用之前。

于 2014-11-12T08:58:08.653 回答
2

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

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

以前我们不需要语言或 tableresize - 但新版本的 ckeditor 似乎需要它。

我在查看 chrome 上的 F12 开发工具的输出时发现了这一点。

于 2014-07-31T04:40:54.530 回答
2

contextmenu您可以在您的站点的 F12 控制台窗口中使用以下代码段找出您的特定 CKEditor 构建中需要哪些插件(假设您也有 jQuery $.each):

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

例如:

插件“tabletools”需要表格、对话框、上下文菜单

然后您可以使用它来帮助您config.removePlugins- 在我的情况下:

config.removePlugins = 'tabletools,contextmenu'
于 2014-12-17T12:26:53.003 回答
1

对于 4.2 版,我将以下内容放在 config.js 文件的末尾

CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});
于 2013-08-02T13:45:18.943 回答
1

按住 ctrl 按钮,同时右键单击以绕过上下文菜单并访问拼写检查器等。

于 2018-06-01T21:08:54.813 回答
0

使用 CKEditor 3.6,我可以通过删除上面建议的 contextmenu 插件来禁用上下文菜单。为此,您必须使用 removePlugins 选项配置编辑器。例如:

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

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

CKEDITOR.editorConfig = function(config) {
    /* Your config options */
    ...
    config.removePlugins = 'contextmenu';
};
于 2012-06-26T05:31:20.663 回答
0

可以完全禁用上下文菜单,将此行添加到您的配置文件(通常是 fckconfig.js):

FCKConfig.ContextMenu = [];
于 2014-05-23T10:46:54.790 回答
0

不幸的是,自从 CKEditor 3.6/4.0 以来,这不再起作用了。

请参阅错误报告:http ://dev.ckeditor.com/ticket/9284

于 2012-09-18T12:49:07.610 回答
0

在 CKEditor 4.x 中,(我测试了 4.2.2)你必须同时做:

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

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

如果您不禁用它们,所有这三个都将自动需要上下文菜单。

于 2013-11-26T22:54:31.397 回答