2012-06-20 1 views
2

Je voulais récupérer l'événement keyCode on keydown dans ckeditor. Mon code ressemble un peu à ceciCode clé dans l'éditeur CK

editor.document.on('keydown', function(event) { 
    var keycode= event.data.keyCode & ~(CKEDITOR.SHIFT | CKEDITOR.CTRL |CKEDITOR.ALT); 
    alert('Key:'+keycode); 

}); 

Mais il alerte toujours 0. Ne peut pas comprendre pourquoi.
Aussi je voulais utiliser event.preventDefault() de Jquery .Mais je ne peux pas comprendre comment inclure la bibliothèque jquery dans les suggestions de mes plugin.js

Répondre

6

Ceci est le code correct si vous voulez pour avoir du plaisir:

CKEDITOR.instances.editor1.on('key', function (evt) { 
    var kc = evt.data.keyCode, 
     csa = ~(CKEDITOR.CTRL | CKEDITOR.SHIFT | CKEDITOR.ALT); 

    console.log(kc, kc & csa); 
    // kc & csa is what you need 
}); 

Ou si vous voulez avoir un code plus court:

CKEDITOR.instances.editor1.document.on('keydown', function (evt) { 
    console.log(evt.data.getKeystroke(), evt.data.getKey()); 
    // getKey() is exactly what you want 
}); 

En ce qui concerne la prévention par défaut - vous n'avez pas besoin jQuery pour cela. CKEditor est un outil tellement énorme qu'il a une bibliothèque DOM intégrée. Vous pouvez trouver la méthode preventDefault dans le evt.data du deuxième exemple.

+0

Avez-vous fait face à un problème similaire à celui-ci ?: http://stackoverflow.com/questions/24808029/ckeditor-key-event-not-updating-text-properly –