Prenda o Evento Keydown no TinyMCE Post Editor

4

Eu gostaria de ligar o evento keydown no TinyMCE Editor na página de edição de pós-admin. Eu consegui ligar o editor de conteúdo HTML usando o seguinte código:

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

Aqui está minha tentativa fracassada de ligar o editor TinyMCE. O problema é que o editor ainda não foi init, então a variável ed é indefinida.

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

Qualquer ajuda seria muito apreciada!

    
por odie5533 26.07.2011 / 16:52

1 resposta

6

o TinyMCE Editor tem seu próprio manipulador de eventos keydown e está ligado a uma função na iniciação, para fazer isso você pode criar um plugin de tinymce ou usar a iniciação do wordpress com tiny_mce_before_init hook assim:

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;
}
    
por Bainternet 26.07.2011 / 18:23