Je suis en train de passer à tinyMCE 4.x et je tente d’initialiser tinyMCE sur une zone de texte chargée via AJAX. Dans 3.x, j'ai fait quelque chose du genre: TinyMCE - joindre aux divs chargés via des appels AJAX mais cela ne semble pas fonctionner dans 4.x.
tinymce.remove();
tinymce.init();
Ça marche bien!
Dans TinyMCE 4.x _ {mceRemoveControl et mceAddControl ont été supprimés. Vous devez utiliser mceRemoveEditor et mceAddEditor à la place.
Je l'ai obtenu de: [Résolu] mceRemoveControl et mceAddControl in tinymce 4
Sinon, vous pouvez recharger tinymce.init ({...}), mais cela ne devrait pas être le cas car cela serait plus lent.
Vous pouvez charger TinyMCE après avoir inclus textarea avec le code suivant:
//initialize tinyMCE in page
tinymce.init({selector:'textarea'});
juste pour ensuite rencontrer le même problème.
J'ai résolu le problème en encapsulant le script init dans une fonction comme celle-ci.
dans mon fichier init.js
initializeTinyMce();
function initializeTinyMce(selector){
if(selector == undefined){selector = 'textarea';}
...
tinymce.init({
selector: selector,
...
});
}
donc sur votre résultat de demande ajax vous ajoutez
<script type="text/javascript">
$(document).ready(function(){
initMCE('textarea#someId');
});
</script>
fonctionne bien pour moi
tinymce.init ({selector: 'textarea'});
utilisez-le simplement en ajax et si vous ne pouvez pas choisir la valeur, appelez
tinyMCE.triggerSave ();