TinyMCE - l'ajout d'un on/OFF interrupteur à bascule
J'utilise TinyMCE sur le texte-zones dans mon interface d'admin de la section. J'ai mon éditeur TinyMCE forme visible le début, mais je veux l'option pour désactiver/réactiver.
J'utilise le plugin jQuery version, j'ai donc ajouté un script, qui est presque de travail. Toutefois, c'est seulement une incidence sur la première instance de TinyMCE - s'il en existe d'autres instances sur la page, ils ne sont pas affectés.
J'ai utilisé cet exemple http://tinymce.moxiecode.com/examples/example_23.php comme une base pour ce que j'ai fait jusqu'à présent. Mais ne peut toujours pas comprendre pourquoi il est touchant de la première instance. Des idées? Voici mon code:
var $j = jQuery.noConflict();
//Add ON OFF toggle switch
$j(function() {
$j('textarea').after("<br/><span class=\"toggle form-button\">Toggle TinyMCE</span>");
$j("span.toggle").toggle(function(){
$j('.wrapper').find('textarea').tinymce().hide();
}, function () {
$j('.wrapper').find('textarea').tinymce().show();
});
});
- C'est une sorte de non, mais pourquoi tu fais $j('.wrapper').find('textarea')? Vous pourriez faire $j('.wrapper textarea') à la place. Rappelez-vous que le sélecteur jQuery syntaxe fonctionne comme CSS.
- Désolé, je n'ai avoir des comme ça à l'origine, juste oublié de le changer en arrière après avoir essayé différentes choses pour voir si l'un d'entre eux a travaillé à la place!
Vous devez vous connecter pour publier un commentaire.
Fonctionne ok si je répète le script pour chaque zone de texte, comme textarea:eq(0), textarea:eq(1), etc. Je ne sais pas pourquoi, mais ça fera l'affaire.
Mise à JOUR:
La façon dont ils ont la jQuery afficher/masquer exemple sur la tinymce site ne fonctionne pas réellement. Au lieu de masquer l'éditeur, vous avez réellement besoin de décharger puis recharger, ou encore les modifications apportées dans le "basculé" de l'état ne seront pas enregistrées lorsque le formulaire est soumis. Donc, vous devriez faire quelque chose comme ce qui suit:
Pour ceux qui recherchent TinyMCE la version 4.x vous pouvez utiliser:
If editor is currently ON, turn it OFF, else turn it ON
?if(tinymce.EditorManager.get(textarea_id).hidden == false){ /* do something */ }
.Dans le cas où il peut aider quelqu'un, je peux dire que je n'ai jamais eu le droit de travailler avec jquery aide quand j'ai eu plusieurs tinymce instances sur la même page. En fait, je ne sais pas si il est logique d'utiliser jquery pour cela, car vous serait de perdre la chance de travailler dans le "init une fois" méthodologie qui tinymce permet. Alors j'ai juste écrit quelques fonctions pour gérer le basculement:
Aussi, j'ai juste arrêté à l'aide de jquery aide pour initialiser et initialisé comme ceci:
Vraiment, après tout le temps que j'ai perdu à essayer de l'obtenir pour fonctionner avec jquery, je viens d'utiliser la tinymce objet directement. Depuis init est appelée une fois, tous les éditeurs viennent à la recherche de travail et le même.
Sur mes pages, je switch entre la vanille HTML 'textarea' et éditeur tinymce. J'utilise tinymce 4. Les recettes ci-dessus ne fonctionnent plus dans la version 4. Afin de ne pas perdre textarea contenu à présenter, dans les deux cas j'ai trouvé cette solution:
HTML:
'tinymce_settings' est ce dictionnaire de l'éditeur-options:
HTML: