wake-up-neo.com

Initialisieren Sie anschließend den TinyMCE-Editor/visuellen Editor AJAX einfügen

Ich habe eine "Repeater" -Feldgruppe auf einer benutzerdefinierten Optionsseite. Es gibt einen aktiven visuellen Editor in einem verborgenen Zustand, und wenn der Benutzer auf "Neu hinzufügen" klickt, wird die gesamte Zeile geklont. Ich muss dann den visuellen Editor in der geklonten Zeile initialisieren. Mein Code:

$('.repeater-add-new').click(function(event) {
    event.preventDefault();
    var target = $(this).data('repeater');
    $( '#' + target).find('.repeater-row:not(.clone) .repeater-content.in').collapse();
    var newRow = $( '#' + target + ' .repeater-row.clone' ).clone().appendTo( '#' + target + ' .repeater-row-wrapper' ).removeClass('clone');
    rebuildIndex(target);

    // Initialize editors if needed
    newRow.find('.wp-editor-wrap').each(function(index, el) {
        var ed_id = $(this).find('textarea').attr('id');

        tinymce.init(tinyMCEPreInit.mceInit[ed_id]);
        tinymce.execCommand('mceAddEditor', false, ed_id); 
        quicktags({id : ed_id});
    });
});

Screenshot der Oberfläche:

 Screenshot 

Beim Laden der Seite erhalte ich den Konsolenfehler:

Nicht erfasster TypeError: Die Eigenschaft 'onpageload' von undefined kann nicht gelesen werden

Und natürlich funktioniert der Editor nicht. Nachdem ich die Seite gespeichert habe, funktioniert sie natürlich einwandfrei, aber ich muss sie funktionsfähig haben, wenn die Zeile ebenfalls hinzugefügt wird.

11
Jack Arturo

Haben Sie es geschafft, den Editor ohne Javascript zum Laufen zu bringen? Versuchen Sie in diesem Fall, eine Vorlage mit einem funktionierenden Tinymce-Editor zu erstellen, und schreiben Sie dann Ihr Javascript neu, um diese Vorlage mit dem Argument WithDataAndEvents der Funktion jQuery clone() zu kopieren, die auf true festgelegt ist.

Zum Beispiel:

$('.cloner').click(function(){
  $('.container').append($('.template').clone(true).removeClass('hidden'));
});
1
Fleuv