Cum să afișezi un editor tinyMCE în WordPress atunci când adaugi un textarea dinamic cu JavaScript?

11 iun. 2014, 00:06:53
Vizualizări: 16.5K
Voturi: 3

Am un plugin care permite utilizatorului să adauge dinamic secțiuni care trebuie să conțină editorul tinyMCE. jQuery clonează un div și îl plasează într-un container. Una din căsuțele de input este un textarea configurat astfel:

<textarea name="sectionContent_1" id="sectionContent_1"></textarea>

Trebuie să înlocuiesc textarea cu editorul tinyMCE.

Am analizat:

Cum să încarci wp_editor() prin AJAX/jQuery și folosește wp_editor din WordPress în html dinamic/ajax

Niciuna dintre aceste soluții nu pare să funcționeze pentru noi

Am încercat acest cod în interiorul trigger-ului care adaugă secțiunea cu textarea:

$(this).parent().find('.sectionOptions').html(ctHolder);

var textAreaID = 'sectionContent_'+sectionID;

tinyMCE.execCommand('mceRemoveEditor', true, textAreaID);
tinyMCE.execCommand('mceAddControl', false, textAreaID);

Aici, adaug datele clonate (ctHolder) în .sectionOptions, setez ID-ul textarea-ului, resetez editorul pentru acel ID, apoi adaug controlul pentru ID... dar nu funcționează, deși pare a fi sugestia cea mai comună.

1
Comentarii

Posibil duplicat al Cum se încarcă wp_editor() prin AJAX/jQuery

T.Todua T.Todua
15 aug. 2016 19:08:45
Toate răspunsurile la întrebare 2
2
tinymce.remove();
tinymce.init();

Acest cod funcționează perfect!

22 mar. 2015 01:20:37
Comentarii

Te rog să adaugi și o explicație.

Nilambar Sharma Nilambar Sharma
22 mar. 2015 05:59:28

Chiar ajută. Funcționează.

harrrrrrry harrrrrrry
1 iun. 2015 21:09:57
0

Aceasta a funcționat:

var textAreaID = 'sectionContent_' + sectionID;
$(this).parent()
    .find('.sectionOptions')
    .html(ctHolder).ready(
        function() {
            tinyMCE.execCommand('mceAddEditor', false, textAreaID); 
        }
    );

WordPress 3.9 folosește tinyMCE 4.x, așa că "mceAddControl" a fost înlocuit cu "mceAddEditor". De asemenea, am plasat apelul în interiorul unei funcții ready, astfel încât jQuery să nu execute tinyMCE până când nu încarcă textarea în DOM.

11 iun. 2014 00:36:50