web-dev-qa-db-fra.com

Comment initialiser TinyMCE sur une zone de texte chargée en ajax dans 4.x?

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.

14
Mike Dotterer
tinymce.remove();
tinymce.init();

Ça marche bien!

43

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.

11
Eduardo Casas

Vous pouvez charger TinyMCE après avoir inclus textarea avec le code suivant:

//initialize tinyMCE in page
tinymce.init({selector:'textarea'});
6
Jamshid Hashimi

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

1
user1469027

tinymce.init ({selector: 'textarea'});

utilisez-le simplement en ajax et si vous ne pouvez pas choisir la valeur, appelez 

tinyMCE.triggerSave ();

0
suraj