Pregunta

¿Alguien sabe cómo desactivar el menú contextual de CKEditor (clic derecho)? Yo esperaría que una opción de configuración, pero no puedo encontrar uno. Estoy utilizando la versión 3.1. Gracias.

¿Fue útil?

Solución

Es necesario eliminar el plugin contextmenu. Ver aquí de 3.1.

Otros consejos

A partir de la versión 3.6.4, las otras respuestas en esta pregunta ya no funcionan. Ver el bug # 9284

Los tres plugins que necesitan ser desactivado (utilizando los medios discutidos en esta cuestión), son contextmenu, liststyle y tabletools. Así, por ejemplo, el uso de los archivos de configuración:

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

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 ya no necesita quitar)

CKEDITOR.editorConfig = function (config) {
  config.language = 'en';
  config.toolbar = "mini";
  config.removePlugins = 'contextmenu,liststyle,tabletools,tableselection';
  config.disableNativeSpellChecker = false;
}

Hay todavía una solución práctica, reemplazando el prototipo de la función que inicializa el comportamiento contextmenu:

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

NOTA: cuando CKeditor carga sus recursos de forma dinámica JS es necesario colocar justo antes de la llamada replace

.

que necesitaba para desactivar todas las siguientes acciones para conseguir que esto funcione.

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

Anteriormente no había necesidad idioma o tableresize - pero una versión más reciente de CKEditor parece exigir que.

Esto lo descubrí en el estudio de la salida de herramientas F12 dev en el cromo.

En la versión 4.2, pongo el siguiente texto al final de mi archivo config.js

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

Puede averiguar qué plugins requieren contextmenu en su construcción particular de CKEditor utilizando el siguiente fragmento de código en una ventana de la consola F12 en su sitio (se supone que tiene jQuery también para $.each):

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

Por ejemplo:

  

Plugin '' TableTools requiere mesa, de diálogo, contextual

que luego se puede utilizar para ayudarle con su config.removePlugins - en mi caso:

config.removePlugins = 'tabletools,contextmenu'

Con CKEditor 3.6 que fue capaz de desactivar el menú contextual quitando el plugin menú contextual como se sugirió anteriormente. Para ello, tiene que configurar el editor con la opción removePlugins. Por ejemplo:

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

También se puede desactivar a nivel mundial desde el archivo config.js:

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

Lamentablemente, desde CKEditor 3.6 / 4.0 esto no funciona más.

Ver informe de error: http://dev.ckeditor.com/ticket/9284

En 4.x CKEditor, (he probado 4.2.2) debe hacer ambas cosas:

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

y

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

Los tres de los requerirá automáticamente contextual si no desactivarlas.

Es posible desactivar por completo el menú contextual añadiendo esta línea a su archivo de configuración (típicamente fckconfig.js):

FCKConfig.ContextMenu = [];

Mantenga pulsado el botón Ctrl mientras hace clic derecho a pasar por el menú contextual y el acceso corrector ortográfico, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top