web-dev-qa-db-fra.com

Décrochez l'événement Keydown dans l'éditeur de post TinyMCE

Je souhaite accrocher l'événement keydown dans l'éditeur TinyMCE sur la page d'administration de publication modifiée. J'ai réussi à accrocher l'éditeur de contenu HTML à l'aide du code suivant:

jQuery('#content').keydown(function(){
    alert("keydown")
});

Voici ma tentative infructueuse d'accrochage de l'éditeur TinyMCE. Le problème est que l'éditeur n'a pas encore été init, donc la variable ed n'est pas définie.

var ed = tinyMCE.getInstanceById('tinymce');
ed.onChange.add(function(ed, l) {
    alert("keydown");
});

Toute aide serait très appréciée!

4
odie5533

l'éditeur TinyMCE a son propre gestionnaire d'événements keydown et sa fonction reliée à une initiation. Pour ce faire, vous pouvez créer un plugin tinymce ou en utiliser l'initiation wordpress avec le hook tiny_mce_before_init comme ceci:

add_filter( 'tiny_mce_before_init', 'wpse24113_tiny_mce_before_init' );
function wpse24113_tiny_mce_before_init( $initArray )
{
    $initArray['setup'] = <<<JS
[function(ed) {
    ed.onKeyDown.add(function(ed, e) {
        //your function goes here
        console.debug('Key down event: ' + e.keyCode);
    });

}][0]
JS;
    return $initArray;
}
6
Bainternet