如何禁用CKEditor上下文菜单?

时间:2010-02-11 18:21:42

标签: javascript ckeditor

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

12 个答案:

答案 0 :(得分:36)

从版本3.6.4开始,此问题中的其他答案不再有效。 See bug #9284

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

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

答案 1 :(得分:14)

您需要删除contextmenu插件。有关3.1的信息,请参阅here

答案 2 :(得分:4)

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

4.8.0

Ckeditor CKEDITOR.editorConfig = function (config) { config.language = 'en'; config.toolbar = "mini"; config.removePlugins = 'contextmenu,liststyle,tabletools,tableselection'; config.disableNativeSpellChecker = false; } (' elementspath'插件不再需要删除)

 public interface NetworkAPI {
    @GET("authentication.php")
    @Headers({"Content-Type:application/json; charset=UTF-8"})
    Call<JsonElement> loginRequest(@Body LoginRequest body);
}

答案 3 :(得分:2)

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

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

以前我们不需要语言或表格 - 但是更新版本的ckeditor似乎需要这样做。

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

答案 4 :(得分:2)

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

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

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

您可以在站点的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'

答案 7 :(得分:0)

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

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

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

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

答案 8 :(得分:0)

不幸的是,由于CKEditor 3.6 / 4.0不再适用。

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

答案 9 :(得分: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'';
};

如果你不禁用它们,那么所有这三个都会自动要求上下文菜单。

答案 10 :(得分:0)

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

FCKConfig.ContextMenu = [];

答案 11 :(得分:0)

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