Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I would like to hook the keydown event in the TinyMCE Editor on the edit post admin page. I managed to hook the HTML content editor using the following code:

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

Here is my failed attempt at hooking the TinyMCE editor. The problem is that the editor hasn't been init yet so the variable ed is undefined.

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

Any help would be much appreciated!

share|improve this question
1  
Your custom TinyMCE code should go inside a TinyMCE plugin, check some of the related links(to the right of this page) for examples of how this is done. –  t31os Jul 26 '11 at 14:56

1 Answer 1

up vote 3 down vote accepted

the TinyMCE Editor has its own keydown event handler and its hooked to a function on initiation so to do that you can create a tinymce plugin or use the wordpress initiation of it with tiny_mce_before_init hook like this:

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;
}
share|improve this answer
    
Thank you! That's exactly what I wanted to do. The only stuff I could find was using the tinyMCE init to create new editors with event handling. Using tiny_mce_before_init worked perfectly. Thank you so much. –  odie5533 Jul 26 '11 at 16:39
    
Glad I could help. –  Bainternet Jul 26 '11 at 16:46
    
Glad I found this, it's exactly what I needed. Thanks. –  David Gard Jul 12 '13 at 12:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.