web-dev-qa-db-fra.com

Comment avoir WP éditeurs instances tinyMCE

Mon objectif principal est d'obtenir le contenu de l'éditeur lorsque celui-ci change et de mettre à jour un aperçu en direct. Pour cela, je dois ajouter un écouteur d'événement à l'éditeur. BTW, j'ai deux éditeur dans la même page et la page est chargée via ajax.

Revenons maintenant à mon problème. Je n'arrive pas à accéder à l'instance des éditeurs tinyMCE. Je peux console.log() mais obtenir un résultat vide lorsque j'essaie de les stringifier .

Ci-dessous, le résultat de console.log(tinymce.editors).

console.log(tinymce.editors)

Donc, chaque fois que j'essaie d'accéder aux éditeurs en utilisant tinymce.editors.contentleft, tinymce.editors['contentleft'], tinymce.get('contentleft') ou tinymce.EditorManager.get('contentleft') dans tous ces cas, je reçois undefined ou null

Travailler plus que quelques jours à ce sujet. J'apprécierais une direction appropriée bientôt.

1
Sisir

Si vous attendez l'événement SetupEditor, vous pourrez accéder aux éditeurs:

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