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

Javascript 在版本4.4.6中禁用ckeditor上下文菜单,javascript,ruby-on-rails-4,ckeditor,Javascript,Ruby On Rails 4,Ckeditor,我正在Rails4项目中使用ckeditor。我尝试了ckeditor gem和ckeditor_rails gem来提供ckeditor库 这里有多篇文章是人们希望删除ckeditor上下文菜单,以便显示本机浏览器上下文菜单 这通常是为了使用浏览器拼写检查器,而不是ckeditor付费/广告拼写检查器 第三个链接的回复最多,但没有一个被普遍接受。 通常,答案是通过在ckeditor config.js中放置以下内容来删除contextmenu插件 config.removePlugins

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

这里有多篇文章是人们希望删除ckeditor上下文菜单,以便显示本机浏览器上下文菜单

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

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

config.removePlugins = 'contextmenu';
CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});
还有一种观点认为contextmenu依赖于其他插件,不同的人会添加大量的其他插件来删除

一篇有用的帖子建议在控制台中运行以下代码以建立依赖关系

$.each(CKEDITOR.plugins, function(k, v){ 
    v.requires && console.log("Plugin '" + k + "' requires: " + v.requires) 
})
这似乎很有效,并表明tabletools和liststyle插件依赖于contextmenu。因此,我们以

config.removePlugins = 'liststyle,tabletools,contextmenu';
不幸的是,这并没有禁用我正在使用的ckeditor版本中的上下文菜单(通过在config.js中添加警报(ckeditor.version)建立的4.4.6)

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

config.removePlugins = 'contextmenu';
CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});
没有关于这意味着如何禁用上下文菜单的建议,但在任何情况下,这对我来说都没有区别

对我来说,这是一个很好的例子,因为ckeditor上下文菜单隐藏了浏览器的拼写建议,它包含的剪切和粘贴选项实际上并不起作用,只是打开了浏览器对话框

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

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

:


如果它对您没有帮助,您必须包含一个有效的示例来重现问题,因为您的设置中正在发生异国情调。

如果有人正在查看如何禁用上下文菜单并访问CKEditor中的本机浏览器拼写检查程序:

CKEDITOR.replace( 'editor1', {
    removePlugins: 'contextmenu,liststyle,tabletools,tableselection',
    disableNativeSpellChecker: false
} );

(在CKEditor 4.7.0标准包上测试)

在我的Drupal 7环境中,从CDN加载CKEditor,当前版本为4.11.4。 在经历了许多失败的选择之后,唯一对我有效的是:

config.removePlugins = 'liststyle,tableselection,tabletools,tableresize,contextmenu';
为了方便起见,我将其放在模块配置设置->高级->自定义JavaScript配置中,但根据我的经验,同样的结果也可以在模块文件夹中的ckeditor.config.js文件中实现。
(在更新模块时,很可能会意外地被覆盖……您也可以通过选中在主题中使用config.js文件的选项,然后将上面的行添加到该文件中来实现。)

这与“confg.removePlugins等”有何区别?我假设在您的示例代码中,字符串“textarea”指的是textarea的id?当我尝试这段代码(在我的document.ready中)时,我得到“Uncaught编辑器实例”contact\u case\u notes“已经附加到提供的元素;在4.4.7中对我有效。非常感谢。这是我唯一的选择