Come rendere un textarea dinamico come editor tinyMCE in WordPress usando JavaScript?

11 giu 2014, 00:06:53
Visualizzazioni: 16.5K
Voti: 3

Ho un plugin che permette all'utente di aggiungere dinamicamente sezioni che devono contenere l'editor tinyMCE. jQuery clona un div e lo posiziona in un contenitore. Una delle caselle di input è un textarea impostato così:

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

Devo sostituire il textarea con l'editor tinyMCE.

Ho consultato:

Come caricare wp_editor() tramite AJAX/jQuery e usare wp_editor di WordPress in html dinamico/ajax

Nessuno di questi sembra funzionare nel nostro caso

Ho provato questo all'interno del trigger che aggiunge la sezione textarea:

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

var textAreaID = 'sectionContent_'+sectionID;

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

In questo codice, aggiungo i dati clonati (ctHolder) a .sectionOptions, imposto l'ID del textarea, resetto l'editor su quell'ID e poi aggiungo il controllo all'ID... ma non funziona, nonostante sia il suggerimento più comune.

1
Commenti

Possibile duplicato di Come caricare wp_editor() tramite AJAX/jQuery

T.Todua T.Todua
15 ago 2016 19:08:45
Tutte le risposte alla domanda 2
2
tinymce.remove();
tinymce.init();

Funziona perfettamente!

22 mar 2015 01:20:37
Commenti

Per favore aggiungi anche qualche spiegazione.

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

Questo è davvero utile. Funziona.

harrrrrrry harrrrrrry
1 giu 2015 21:09:57
0

Questo ha funzionato:

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

WordPress 3.9 utilizza TinyMCE 4.x quindi "mceAddControl" è stato cambiato in "mceAddEditor". Inoltre, ho inserito la chiamata all'interno di una funzione ready in modo che jQuery non eseguisse TinyMCE finché non avesse caricato la textarea nel DOM.

11 giu 2014 00:36:50