在版本 4.4.6 中禁用 ckeditor 上下文菜单

gio*_*gio 5 javascript ckeditor ruby-on-rails-4

我在 Rails4 项目中使用 ckeditor。我尝试了 ckeditor gem 和 ckeditor_rails gem 来提供 ckeditor 库。

这里有多个帖子,人们希望删除 ckeditor 上下文菜单,以便可以显示本机浏览器上下文菜单。

这通常是为了启用浏览器拼写检查器而不是 ckeditor 付费/广告拼写检查器。

如何删除 ckeditor-4-3 中的上下文菜单

ckeditor-3-6-3-启用浏览器拼写检查并禁用上下文菜单

如何禁用 ckeditor 上下文菜单/20229730#20229730

第三个链接的回复最多,但没有一个被普遍接受。一般来说,答案是通过将以下内容放入 ckeditor config.js 中来删除 contextmenu 插件

config.removePlugins = 'contextmenu';
Run Code Online (Sandbox Code Playgroud)

还有人建议上下文菜单依赖于其他插件,并且不同的人也添加了许多其他要删除的插件。

一篇有用的文章建议在控制台中运行以下代码来建立依赖关系。

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

这似乎工作得很好,并表明 tabletools 和 liststyle 插件依赖于上下文菜单。所以我们最终得到

config.removePlugins = 'liststyle,tabletools,contextmenu';
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会禁用我正在使用的 ckeditor 版本中的上下文菜单(4.4.6 通过在 config.js 中添加警报(CKEDITOR.version)建立)

最后建议在config.js中使用以下代码

CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});
Run Code Online (Sandbox Code Playgroud)

没有关于如何禁用上下文菜单的建议,但无论如何,这对我来说没有什么区别。

对我来说,这是一个令人震惊的问题,因为 ckeditor 上下文菜单隐藏了浏览器拼写建议,并且它包含的剪切和粘贴选项实际上不起作用,而只是打开浏览器对话框。

您的浏览器安全设置不允许编辑器自动执行复制操作。请使用键盘(Ctrl/Cmd+C)。

在所有其他方面,ckeditor 似乎确实是功能最好的编辑器。

ole*_*leq 1

就如此容易

CKEDITOR.replace( 'textarea', {
    removePlugins: 'contextmenu,tabletools' 
} );
Run Code Online (Sandbox Code Playgroud)

如果它对您没有帮助,您必须包含一个有效的示例来重现该问题,因为您的设置中出现了一些奇怪的情况。