Comment puis-je obtenir tinyMCE éditeur instance par le sélecteur d'élément?
Je veux mettre un contenu de l'éditeur tinyMCE après qu'il a été créé par une requête AJAX. J'ai plusieurs éditeurs sur la page. Elles sont initialisées avec:
tinymce.init({
selector: '.tiny-mce'
});
Chaque éditeur dispose d'une classe distincte pour le séparer les uns des autres.
Comment puis-je utiliser cette classe pour définir le contenu d'un particulier d'un éditeur, après l'obtention de données avec une requête AJAX?
tinyMCE.get('.class_name') //returns null
Je suis à la recherche de l'API et de la SORTE et ne peuvent pas trouver une fonction pour faire une telle chose simple.
Edit:
Je l'ai trouvé pas si propre façon d'obtenir de l'éditeur d'instance. Lorsque tinyMCE a été créé il ajouté id avec le nom de l'éditeur à l'élément. Maintenant, je peux faire quelque chose comme ceci:
var id = $('.class_name').attr('id');
tinyMCE.get(id).setContent('new content');
Mais est-il une meilleure façon?
OriginalL'auteur Boykodev | 2016-04-03
Vous devez vous connecter pour publier un commentaire.
Par la
get()
API de la chaîne que vous avez passer à cet appel doit être le ID de l'éditeur d'élément non une Classe.https://www.tinymce.com/docs/api/class/tinymce/#get
Donc, si vous souhaitez cibler l'éditeur basé sur l'ID que vous avez besoin de quelque chose comme ceci:
... et dans votre JavaScript quelque chose comme ça...
Si vous avez seulement un éditeur sur la page, vous pouvez également utiliser
EDIT: Il dépend quand dans l'éditeur du cycle de vie que vous voulez appeler le
get()
ouactiveEditor()
méthodes.Ceux-ci ne retourne rien, jusqu'à ce que après TinyMCE est complètement initialisé. Si vous avez un code comme ceci:
Ce échouent généralement parce que vous ne savez pas si TinyMCE est terminé l'initialisation de la textareas lorsque votre JavaScript est en cours d'exécution. Veuillez voir ce violon:
http://fiddle.tinymce.com/gufaab/1
La meilleure façon de charger le contenu dans l'éditeur est d'utiliser l'éditeur "init" de rappel et le lieu de votre code. Par exemple:
...à noter que l'init est appelée pour chaque éditeur (s'il y a plusieurs) et vous avez accès à l'éditeur d'objet dans les DOM, si nécessaire.
en fait, votre méthode ne fonctionne pas. L'accès tinyMCE par l'identifiant de l'élément renvoie la valeur null.
veuillez voir les mises à jour de mon post. Quand vous appeler ces méthodes est important - si son retour
null
lorsque vous savez que vous avez l'ID correct, vous êtes probablement en l'appelant avant que l'éditeur est initialisé et prêt pour l'interaction. Il y a des Api que vous pouvez utiliser pour traiter cette question.OriginalL'auteur Michael Fromin
Vous pouvez utiliser l'id dans la sélection et le contenu d'ensemble après l'éditeur est initialisé avec la fonction de rappel:
c'est le html
utilisation init_instance_callback parce que si vous définissez le contenu de la requête ajax, il peut va plus vite que l'initialisation de l'éditeur
OriginalL'auteur Ruggero
TinyMCE fonctionne mieux lorsque vous utilisez le sélecteur d'id au lieu de sélecteur de classe.
Vous pouvez utiliser init_instance_callback à configurer votre contenu lorsque votre éditeur est initialisé.
Cela ne fonctionne que si vous avez un sélecteur d'id.
HTML :
JS :
OU
OriginalL'auteur dayota