it-swarm.com.de

Erkennen Sie einen Fokus auf wp_editor

Ich kann/Rückruf nicht erkennen, wenn eine wp_editor(..) ausgegebene Textfläche/bearbeitbarer Inhalt focus ist. Eine ganz einfache Frage, die ich nirgendwo finden konnte.

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

Dies sollte funktionieren, aber aufgrund von Iframe/Delegation ist die Auswahl schwierig. z.B :

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

EDIT ----

wp_editor() == tinyMCE und die einzigen Rückrufe, die dies hat, sind FocusEvent und Editor.focus , aber ich musste einen bösen Hack machen, damit es funktioniert:

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

Dies funktioniert, ist aber ein Hack einer Lösung, die auf andere Weise (vorzugsweise mit jQuery) einen Selektor für focus erstellt.

4
Kivylius

Sie können eine Reihe von Einstellungen an die Editorinstanz übergeben. Mögliche Werte finden Sie in der Dokumentation zu tinymce. In Ihrem Fall kann 'init_instance_callback' hilfreich sein.

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