web-dev-qa-db-ja.com

TinyMCE Post EditorでKeydownイベントをフックします。

TinyMCEエディタの編集ポスト管理ページのkeydownイベントをフックしたいと思います。私は次のコードを使用してHTMLコンテンツエディタをフックすることに成功しました:

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

これが私のTinyMCEエディタをフックしようとした試みの失敗です。問題は、エディタがまだ初期化されていないので、変数edが未定義であることです。

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

任意の助けは大歓迎です!

4
odie5533

tinyMCEエディタには独自のkeydownイベントハンドラがあり、開始時に関数にフックされているので、tinymceプラグインを作成したり、次のようにtiny_mce_before_initフックを使ってワードプレスで開始することができます。

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