web-dev-qa-db-de.com

Wie kommt man WP Editoren tinyMCE Instanzen

Mein Hauptziel ist es, Editor-Inhalte bei Änderungen zu erhalten und eine Live-Vorschau zu aktualisieren. Dazu muss ich dem Editor einen Ereignis-Listener hinzufügen. Übrigens habe ich zwei Editoren auf derselben Seite und die Seite wird über Ajax geladen.

Nun zurück zu meinem Problem. Ich komme nicht zur Instanz der tinyMCE-Editoren. Ich kann sie console.log() aber leeres Ergebnis bekommen, wenn ich versuche, sie zu stringifizieren .

Unten ist das Ergebnis von console.log(tinymce.editors).

console.log(tinymce.editors)

Wenn ich also versuche, mit tinymce.editors.contentleft, tinymce.editors['contentleft'], tinymce.get('contentleft') oder tinymce.EditorManager.get('contentleft') auf Editoren zuzugreifen, erhalte ich in all diesen Fällen undefined oder null

Ich arbeite mehr als ein paar Tage daran. Würde mich über eine richtige Richtung freuen.

1
Sisir

Wenn Sie auf das Ereignis SetupEditor warten, können Sie auf die Editoren zugreifen:

add_action( 'admin_print_footer_scripts', function () {
    ?>
    <script type="text/javascript">
    jQuery(function ($) {
        if (typeof tinymce !== 'undefined') {
            tinymce.on('SetupEditor', function (editor) {
                if (editor.id === 'contentLeft') {
                    // Could use new 'input' event instead.
                    editor.on('change keyup paste', function (event) {
                        console.log('content=%s', this.getContent());
                    });
                }
            });
        }
    });
    </script>
    <?php
} );
5
bonger