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

时间:2015-01-28 02:14:55

标签: javascript ruby-on-rails-4 ckeditor

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

人们希望删除ckeditor上下文菜单,以便显示本机浏览器上下文菜单。

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

how-to-remove-contextmenu-in-ckeditor-4-3

ckeditor-3-6-3-enable-browser-spellcheck-and-disable-context-menu

how-to-disable-ckeditor-context-menu/20229730#20229730

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

config.removePlugins = 'contextmenu';

还有一个建议是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版本中的上下文菜单(4.4.6通过在config.js中添加alert(CKEDITOR.version)建立)

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

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

没有任何关于如何禁用上下文菜单的建议,但无论如何它对我没有任何影响。

对我而言,这是一个showstopper,因为ckeditor上下文菜单隐藏了浏览器拼写建议,它包含的剪切和粘贴选项实际上并不起作用,只是调出浏览器对话框。

  

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

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

3 个答案:

答案 0 :(得分:2)

As simple as that

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

如果它对您没有帮助,您必须提供有效的样本才能重现该问题,因为您的设置中存在异乎寻常的情况。

答案 1 :(得分:1)

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

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

(在CKEditor 4.7.0上测试,标准包装)

答案 2 :(得分:1)

在我的Drupal 7环境中,从CDN加载ckeditor,当前版本为4.11.4。 在许多失败的选择之后,唯一对我有用的东西:

config.removePlugins = 'liststyle,tableselection,tabletools,tableresize,contextmenu';

为方便起见,我将其放在模块配置设置->高级->自定义JavaScript配置中,但是以我的经验,可以在模块文件夹中的ckeditor.config.js文件中获得相同的结果。 (更新模块时,它很可能会被意外覆盖。...您也可以通过选择在主题中使用config.js文件的选项,然后将上面的行添加到该文件中来做到这一点。)< / p>