2011-04-19 5 views
17

Je n'arrive pas à comprendre comment écouter focus, click, onKeyUp et d'autres événements dom de base dans ckeditor. Dans le events summary, il n'y a que quelques événements concernant le cycle de vie de ckeditor. Et le "textArea" de ckeditor est un iframe, et c'est html lui-même, donc il n'est pas clair sur quel dom dom à écouter.Comment écouter les événements de base dans CKEditor?

Répondre

25

Ce n'est pas une grosse affaire, il suffit de faire ce qui suit, fonctionne pour mise au point, flou, etc. cliquez

var ckeditor = CKEDITOR.instances['textArea_id']; 
ckeditor.on('focus', fnHandler, context, data, priority); 

ou un exemple jQuery:

$(document).ready(function() { 
    $('#YOUR_TEXTAREA_ID').ckeditor(ckeditor_config); 

    CKEDITOR.instances.YOUR_TEXTAREA_ID.on('blur', fnHandler); 
}); 

Je ne sais pas quand cela le support est apparu, mais il fonctionne certainement pour 3.5.x

+3

Super, cela fonctionne ... Je suis un tel connard que je n'ai pas essayé thi s avant de demander. J'ai lu quelque part que cela ne peut pas être fait. Merci homme – lisak

+0

Qu'est-ce que (comment initializde) ckeditor_config ?? –

+0

http://docs.ckeditor.com/#!/api/CKEDITOR.event-method-on – wjin

8

CKEditor a en fait intégré la gestion des événements dans l'objet. Voir cet article pour une explication: http://alfonsoml.blogspot.com/2009/09/ckeditor-events.html

Ainsi, pour attraper une modification dans une instance de CKEditor vous pouvez le faire:

CKEDITOR.on('currentInstance', function(){modified = true;}); 

En outre, il semble que la version 3 dispose d'un processeur d'événements intégré à ce qui est plus CK est un peu compliqué et la documentation a des trous, mais basé sur sa capacité à gérer gracieusement Word généré HTML, il obtient mon vote comme la meilleure option là-bas.

+0

currentInstance ne fonctionne pas pour moi, ckeditor version 3.5.2 ... au moins sur la mise au point ou les paramètres ... – lisak

Questions connexes