web-dev-qa-db-fra.com

Détecter un focus sur wp_editor

Je ne veux pas détecter/rappeler lorsqu'un wp_editor(..) zone de texte en sortie/contenu modifiable est focus. C'est une question simple que je n'ai pu trouver nulle part.

<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>

Cela devrait fonctionner, mais à cause de l'iframe/délégation, cela rend la sélection difficile. par exemple :

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

MODIFIER ----

wp_editor() == tinyMCE et les seuls rappels que cela a est est FocusEvent et Editor.focus , mais je voulais faire un mauvais bidouillage pour que cela fonctionne:

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

Cela fonctionne, mais est une solution, un autre moyen (en utilisant de préférence jQuery) de créer un sélecteur pour focus?

4
Kivylius

Vous pouvez transmettre un tableau de paramètres à l'instance de l'éditeur. Pour les valeurs possibles, veuillez vous reporter à la documentation de tinymce. Dans votre cas, "init_instance_callback" pourrait être utile.

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