Detectar um foco no wp_editor

4

Não desejo detectar / retorno de chamada quando wp_editor(..) da área de texto / conteúdo editável é focus . Uma pergunta bem simples que eu não encontrei em lugar nenhum.

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

Isso deve funcionar, mas por causa do iframe / delegação isso dificulta a seleção. por exemplo:

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

EDITAR ----

wp_editor() == tinyMCE e os únicos callbacks que isso tem são FocusEvent e Editor.focus , mas eu tive um truque desagradável para que funcione:

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

Isso funciona, mas é um truque de uma solução, de qualquer outra forma (usando o jQuery preferencialmente) para criar um seletor para focus ?

    
por Kivylius 26.08.2015 / 15:38

1 resposta

2

Você pode passar uma matriz de configurações para a instância do editor. Para possíveis valores, consulte a documentação do tinymce, no seu caso 'init_instance_callback' pode ser útil.

enlace

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