Inisialisasi TinyMCE editor / editor visual setelah memasukkan AJAX

11

Saya memiliki grup bidang gaya "pengulang" pada halaman opsi khusus. Ada editor visual aktif dalam keadaan tersembunyi, dan ketika pengguna mengklik "tambah baru" seluruh baris dikloning. Saya kemudian perlu menginisialisasi editor visual di baris kloning. Kode saya:

$('.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});
    });
});

Tangkapan layar antarmuka:

Tangkapan layar

Saat halaman dimuat, saya mendapatkan kesalahan konsol:

UnEught TypeError: Tidak dapat membaca properti 'onpageload' dari undefined

Dan tentu saja editornya tidak berfungsi. Setelah saya menyimpan halaman itu tentu saja berfungsi dengan baik, tapi saya perlu fungsional ketika baris ditambahkan juga.

Jack Arturo
sumber
apakah Anda mendapatkan solusi untuk masalah 'onpageload'
Kvvaradha
Sepertinya Anda mungkin juga perlu mendaftarkan beberapa hal dengan tag cepat. Saya tidak 100% yakin karena saya tidak dapat menguji ini secara lokal, tetapi Anda bisa mulai dengan stackoverflow.com/questions/21519322/… untuk melihat apakah itu membantu sama sekali.
phatskat
Hei, temui ini lagi. OP, dapatkah Anda menambahkan cuplikan cara menambahkan salah satu bidang ini ke editor pos? Saya dapat mencoba dan repro ini secara lokal dan menggali jika Anda dapat memberikan cara untuk berdiri sendiri.
phatskat
Hai @atskat, terima kasih. Saya akhirnya benar-benar pergi ke arah yang sama sekali berbeda ... klien ingin mengemas sistem ini untuk penjualan komersial sehingga kami menulis ulang semuanya menggunakan antarmuka khusus tanpa ACF. Hargai tawaran untuk membantu!
Jack Arturo

Jawaban:

1

Apakah Anda berhasil membuat editor berfungsi tanpa javascript Anda termasuk? Jika demikian cobalah untuk membuat template yang termasuk editor tinymce yang berfungsi dan kemudian menulis ulang javascript Anda untuk menyalin template itu menggunakan WithDataAndEventsargumen clone()fungsi jQuery yang disetel ke true.

Sebagai contoh:

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