web-dev-qa-db-fra.com

tinyMCE.activeEditor = null WP éditeur chargé en mode 'Texte'?

J'ai un plugin qui enregistre des données via AJAX et me suis rendu compte qu'il n'envoyait aucune requête. J'ai ouvert la console pour regarder plus loin, voir bas quand on essaye de regarder l'objet tinyMCE.activeEditor, sa valeur est null.

Cela ne semble être le cas que lorsque l'éditeur est chargé en mode "Texte" - si vous revenez en arrière ou le chargez en "Visual", l'objet tinyMCE.activeEditor existe comme il se doit.

Je pense que cela a quelque chose à voir avec la mise en cache du mode "Texte" alors que ce ne devrait pas être le cas, et chaque chargement de page devrait réellement fournir le mode "Visuel"?

Si quelqu'un avait déjà rencontré ce problème et connaissait un correctif sans avoir à éditer le coeur, ce serait très apprécié. Je n'ai pas posté de bouts de code car je ne sais pas dans quelle mesure ils seraient pertinents - mais s'il y avait quelque chose que vous aimeriez partager avec moi qui pourrait aider à résoudre ce problème, nous vous en serions très reconnaissants et je serais ravi de :).

2
VitaCoco

Utilisez ce one-liner:

if (! tinyMCE.activeEditor) jQuery ('.wp-editor-wrap .switch-tmce'). trigger ('cliquez');

// Vous pouvez maintenant utiliser "tinyMCE.activeEditor" en toute sécurité console.log (tinyMCE.activeEditor.settings);

1
gradosevic

Il existe une solution simple pour cela.

Vous devez vérifier si l'éditeur est actif, puis définir la valeur de l'éditeur. Sinon, définissez la valeur de la zone de texte. Voir le code ci-dessous.

 
 if (tinyMCE.activeEditor == null) 
 {
 
 jQuery ("# ​​txtArea"). html ('votre html') ; 
} 
 else {
 
 tinyMCE.get ('txtArea'). setContent ('Votre html'); 
} 
 
0
nikunj gandhi