2012-05-24 19 views
11

Tengo un plugin de ckeditor y dentro del init: quiero capturar el evento click para poder hacer algo.ckeditor click evento no funciona

CKEDITOR.plugins.add('Columns',{ 
    init : function(editor) { 
    editor.on('doubleclick', function(ev) {console.log('hello');}); // Works 
    editor.on('focus', function(ev) {console.log('hello');}); // Works 

    editor.on('click', function(ev) {console.log('hello');}); // Does not work 
    editor.on('mousedown', function(ev) {console.log('hello');}); // Does not work 
    } 
}); 

Any Ideas ???

EDIT: OK No se pudo obtener clic de trabajo, creo que es necesario para crear un evento para eso. Sin embargo, gracias a este post: http://alfonsoml.blogspot.com.au/2011/03/onchange-event-for-ckeditor.html

he conseguido utilizar 'GuardaInstantánea' que parece disparar cada vez que haga clic por lo que esta ahora trabaja

editor.on('saveSnapshot', function(ev) {console.log('hello');}); // Works 
+4

Pruebe 'editor.editable(). On ('click', callback)' en su lugar. – oleq

+0

'editor.editable()' requiere un argumento. He encontrado que 'editor.editable (editor.element)' funciona para editores en línea, pero se rompe para los editores normales. – F21

+0

Corrección. 'editor.editable()' funciona, pero solo puede llamarlo después de que el editor active el evento 'instanceReady'. – F21

Respuesta

1

me di cuenta que es antiguo, pero no tiene una respuesta a la pregunta original.

CKEDITOR.plugins.add('Columns',{ 
    init : function(editor) { 
     editor.on('instanceReady', function (e) { 
      this.container.on('click', function (event) { 
       console.log('hello'); 
      }); 
     }); 
    } 
}); 

Nota: esto no funcionará cuando CKEditor está en 'modo de marco flotante clásico'. En su lugar, deberá usar this.document (vea: document property) para obtener una referencia al iframe.

+0

El evento se activa para clics fuera del editor cuando utilizamos este enfoque. Fiddle: http://jsfiddle.net/Af6KD/ – F21

+0

@ F21 Cuando no está en el modo iframe 'this.document' obtiene una referencia al documento de la página completa, intente usar' this.container' en su lugar (vea editar) –

+0

Gracias, esto funcionó :) Aún más cosas de ckeditor que tengo que encontrar la información mediante la excavación de foros/mensajes ... ¡qué pedazo de mierda! –

Cuestiones relacionadas