Comment désactiver le menu contextuel CKEditor?

est-ce que quelqu'un sait comment désactiver le menu contextuel de CKEditor (clic droit)? Je m'attendais à une option de configuration, mais je n'en trouve pas. Je suis à l'aide de la v3.1. Grâce.

19
demandé sur Upperstage 2010-02-11 21:21:41

12 réponses

Vous devez supprimer le contextmenu plugin. Voir ici pour 3.1.

13
répondu Pekka 웃 2010-02-11 18:24:43

à partir de la version 3.6.4, les autres réponses à cette question ne fonctionnent plus. voir bogue n ° 9284

Les trois plugins qui doivent être désactivés (en utilisant les moyens discuté de cette question), sont contextmenu,liststyle et tabletools. Ainsi, par exemple, l'utilisation de fichiers de configuration:

CKEDITOR.editorConfig = function(config) {
    /* Your config options */
    ...
    config.removePlugins = 'contextmenu,liststyle,tabletools';
};
36
répondu Alex Turpin 2012-08-31 13:26:14

Ckeditor 4.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' plugin n'est plus besoin de supprimer)

CKEDITOR.editorConfig = function (config) {
  config.language = 'en';
  config.toolbar = "mini";
  config.removePlugins = 'contextmenu,liststyle,tabletools,tableselection';
  config.disableNativeSpellChecker = false;
}
3
répondu rusllonrails 2017-12-21 09:10:04

j'ai dû désactiver tout ce qui suit pour que cela fonctionne.

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

auparavant, nous n'avions pas besoin de langage ou tableresize - mais une version plus récente de ckeditor semble l'exiger.

j'ai découvert cela en regardant la sortie dans les outils de développement F12 sur chrome.

2
répondu Tim 2014-07-31 04:40:54

il y a encore une solution pratique, en supplantant la fonction prototype qui initialise contextmenu comportement:

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

NOTE: lorsque CKEDITOR charge ses ressources JS dynamiquement, vous devez le placer juste avant le replace appel.

2
répondu I.G. Pascual 2014-11-26 11:13:11

Pour la version 4.2, j'ai mis à la fin de ma config.fichier js

CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});
1
répondu user1337053 2013-08-02 13:45:18

Vous pouvez trouver quels plugins nécessitent contextmenu dans votre construction particulière de CKEditor en utilisant L'extrait suivant dans une fenêtre de console F12 dans votre site (suppose que vous avez jQuery aussi pour $.each):

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

Par exemple:

Plugin 'tabletools" exige de la table,la boîte de dialogue,contextmenu

que vous pouvez utiliser pour vous aider avec votre config.removePlugins - dans mon cas:

config.removePlugins = 'tabletools,contextmenu'
1
répondu Duncan Smart 2014-12-17 12:26:53

avec CKEditor 3.6 j'ai pu désactiver le menu contextuel en supprimant le plugin contextmenu comme suggéré ci-dessus. Pour ce faire, vous devez configurer l'éditeur avec l'option removePlugins. Par exemple:

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

il peut aussi être désactivé globalement à partir de la configuration.fichier js:

CKEDITOR.editorConfig = function(config) {
    /* Your config options */
    ...
    config.removePlugins = 'contextmenu';
};
0
répondu Jonathan Pasquier 2012-06-26 05:31:20

malheureusement depuis CKEditor 3.6 / 4.0 cela ne fonctionne plus.

voir le rapport de bogue:http://dev.ckeditor.com/ticket/9284

0
répondu Kai Noack 2012-09-18 12:49:07

Dans CKEditor 4.x, (je l'ai testé 4.2.2), vous devez faire les deux:

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

Et

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

tous les trois nécessiteront automatiquement contextmenu si vous ne les désactivez pas.

0
répondu sheldonkreger 2013-11-26 22:54:31

il est possible de désactiver complètement le menu contextuel en ajoutant cette ligne à votre fichier de configuration (tipiquement fckconfig.js):

FCKConfig.ContextMenu = [];
0
répondu Anand Mishra 2014-05-23 10:46:54

maintenez le bouton ctrl enfoncé pendant le clic droit pour contourner le menu contextuel et accéder au vérificateur d'orthographe, etc.

0
répondu Andy 2018-06-01 21:08:54