Je ne sais pas pourquoi je n'ai pas pu trouver cela, mais quelqu'un sait-il comment obtenir l'entrée de l'éditeur TinyMCE? Je l'utilise dans le frontal et je veux pouvoir enregistrer tout ce que l'utilisateur a tapé dans le TinyMCE dans une base de données, mais je ne trouve pas le meilleur moyen de capturer cette valeur.
Les deux solutions que j'ai mises en place avec un certain succès sont:
tinyMCE.activeEditor.getContent();
- Celui-ci semble n'obtenir que la valeur de l'éditeur visuel, donc si je suis dans l'éditeur HTML et que j'apporte des modifications, puis enregistre, elles ne sont pas récupérées.$('#html_text_area_id').val();
- Celui-ci est le contraire, il ne semble que récupérer la valeur de l'éditeur HTML.
Je sais qu'il y a une meilleure façon - je n'arrive pas à la trouver ...
ps Oui, je vais mettre en place des mesures de sécurité pour m'assurer que les gens ne peuvent pas faire exploser la base de données.
val()
Réponses:
Ok, apparemment, WordPress garde une trace du type d'éditeur (visuel ou html) actif en tant que classe qui est ajoutée à l'encapsuleur de contenu.Voici donc une solution qui vous fournira le dernier contenu dans l'éditeur
la source
C'est le code que j'ai ajouté à mon javascript, juste avant l'envoi du formulaire.
la source
Cela a fonctionné pour moi:
Où description est l'ID de l'éditeur tinymce et de code après le reste de la réponse acceptée, n'a pas fonctionné pour moi.
la source
J'avais besoin de beaucoup plus de code pour le faire fonctionner, et j'obtenais également une erreur javascript:
Deprecated TinyMCE API call: <target>.onKeyUp.add(..)
cela était dû à une mise à niveau de wordpress de 3.x à 4. J'ai donc dû d'clear my browser cache
abord.Tout d'abord, j'ai ajouté un rappel au filtre wp
tiny_mce_before_init
dans mon fichier functions.php, cela m'a permis d'ajouter une fonction de rappel js à déclencher lorsque les éditeurs sont initialisés:Ensuite, la fonction javascript pour faire ce que l'on veut avec le contenu lorsqu'il change. Ajoutez ce javascript à l'aide de wp_enqueue_scripts à la page souhaitée.
Le code a fonctionné lorsque j'ai utilisé ce qui suit pour imprimer l'éditeur sur n'importe quelle page:
la source
Vous pouvez obtenir le contenu en fonction du mode actuel de l'éditeur.
L' onglet Visual possède une classe
switch-tmce
que vous pouvez utiliser pour l'identifier en tant qu'onglet. Vous savez qu'il a été mis au point s'il a la couleur d'arrière-plan la plus claire. Ainsi, vous pouvez également l'utiliser pour déterminer lequel des deux onglets est actif.Il s'agit d'une solution adaptative basée sur la réponse de Bainternet . Il y a probablement d'autres meilleures façons de le faire, mais celui-ci a bien fonctionné pour moi.
la source
Vous pouvez également utiliser l'
addeditor
événement:Documentation de l'événement «ajouté» de TinyMCE
la source