CKEditorのコンテキスト(右クリック)メニューを無効にする方法を知っている人はいますか?構成オプションを期待しますが、見つかりません。私はv3.1を使用しています。ありがとう。
12 に答える
バージョン3.6.4以降、この質問の他の回答は機能しなくなりました。バグ#9284を参照してください
(この質問で説明した手段を使用して)無効にする必要がある3つのプラグインは、、contextmenu
およびliststyle
ですtabletools
。したがって、たとえば、構成ファイルを使用すると、次のようになります。
CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = 'contextmenu,liststyle,tabletools';
};
contextmenu
プラグインを削除する必要があります。3.1についてはこちらをご覧ください。
Ckeditor4.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;
}
contextmenu
動作を初期化するプロトタイプ関数をオーバーライドすることにより、まだ実用的な解決策があります。
CKEDITOR.dom.element.prototype.disableContextMenu = function () {
this.on( 'contextmenu', function( event ) {
// your contextmenu behavior
});
};
注:CKEDITORがJSリソースを動的にロードする場合は、呼び出しの直前に配置する必要がありreplace
ます。
これを機能させるには、次のすべてを無効にする必要がありました。
config.removePlugins = 'language,tableresize,liststyle,tabletools,scayt,menubutton,contextmenu';
以前は言語やテーブルサイズは必要ありませんでしたが、新しいバージョンのckeditorではそれが必要なようです。
私はこれをChromeのF12開発ツールの出力を見て発見しました。
サイトのF12コンソールウィンドウで次のスニペットを使用して、CKEditorの特定のビルドで必要なプラグインを見つけることができますcontextmenu
(jQueryもあると仮定します$.each
)。
$.each(CKEDITOR.plugins, function(k, v){
v.requires && console.log("Plugin '" + k + "' requires: " + v.requires)
})
例えば:
プラグイン「tabletools」には、table、dialog、contextmenuが必要です
次に、これを使用してconfig.removePlugins
、私の場合は次のことを支援できます。
config.removePlugins = 'tabletools,contextmenu'
バージョン4.2の場合、config.jsファイルの最後に次のように配置します
CKEDITOR.on('instanceReady', function(ev) {
ev.editor.editable().addClass('cke_enable_context_menu')
});
Ctrlボタンを押しながら右クリックすると、コンテキストメニューがバイパスされ、スペルチェッカーなどにアクセスできます。
CKEditor 3.6では、上記のようにコンテキストメニュープラグインを削除することでコンテキストメニューを無効にすることができました。これを行うには、removePluginsオプションを使用してエディターを構成する必要があります。例えば:
CKEDITOR.replace('my_editor', {
removePlugins : 'contextmenu'
});
config.jsファイルからグローバルに無効にすることもできます。
CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = 'contextmenu';
};
残念ながら、CKEditor 3.6 / 4.0以降、これは機能しなくなりました。
バグレポートを参照してください:http://dev.ckeditor.com/ticket/9284
CKEditor 4.xでは(私は4.2.2をテストしました)、次の両方を行う必要があります。
CKEDITOR.replace('my_editor', {
removePlugins : 'contextmenu'
});
と
CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = ''liststyle,tabletools,contextmenu'';
};
無効にしない場合、これら3つすべてにコンテキストメニューが自動的に必要になります。
この行を構成ファイル(通常はfckconfig.js)に追加して、コンテキストメニューを完全に無効にすることができます。
FCKConfig.ContextMenu = [];