web-dev-qa-db-ja.com

Wp_editorに焦点を当てる

wp_editor(..)の出力テキスト領域/コンテンツ編集可能ファイルがfocusの場合は、/ callbackを検出しません。私がどこにも見つからなかったという非常に単純な質問です。

<div class="compose-body">
<?php
     $content = '';
     $editor_id = 'compose-editor';
     wp_editor( $content, $editor_id, array(
         "wpautop" => true,
         "tabindex" => 1,
         "editor_height" => 400,
         "teeny" => true
    ));
?>
</div>

これはうまくいくはずですが、iframe /委任のため、これを選択するのは困難です。例:

$(".compose-body").on("click focus", "[data-id='compose-editor']", function(){
    console.log("YEPP focus/clicked!");
});

編集----

wp_editor() == tinyMCEそしてこれが持っている唯一のコールバックは FocusEventEditor.focus ですが、私はそれを動かすために厄介なハックをしました:

setTimeout(function(){
    var a = tinymce.editors[0].on("focus", function(){
        console.log("YEPP!");
    });
}, 300);

これはうまくいきますが、他の方法(できればjQueryを使用)でfocusのセレクターを作成するという解決策のハックです。

4
Kivylius

設定の配列をエディタインスタンスに渡すことができます。可能な値についてはtinymceのドキュメントを参照してください。あなたの場合は 'init_instance_callback'が役に立つかもしれません。

https://www.tinymce.com/docs/configure/integration-and-setup/#init_instance_callback

  wp_editor('', 'sedemoeditor', array(
        'tinymce' => array(
            'init_instance_callback' => 'function(editor) {
                        editor.on("focus", function(){
                            console.log("Editor: " + editor.id + " focus.");
                    });
                }'
            )
));
2
ungestaltbar