web-dev-qa-db-fra.com

Comment utiliser le package TinyMCE jQuery et quelle est la différence avec le plugin TinyMCE jQuery

J'ai vu ce post Qu'est-ce que le package TinyMCE jQuery? qui explique ce qu'est le package v4 TinyMCE jQuery mais le post et le site tinymce ne contiennent que des exemples de v3.

Lorsque je télécharge le package jQuery v4 TinyMCE, il n'y a pas de tiny_mce.js; il semble y avoir deux fichiers jquery.tinymce.min.js et tinymce.min.js. J'ai lu que si j'inclus les deux fichiers, j'utilise TinyMCE complet et non la version jQuery, mais si je n'inclus que le fichier jQuery, mon appel à tinyMCE.init échoue avec "tinyMCE n'est pas défini".

Je préfère vraiment comprendre cela à partir de la documentation, mais j'ai essayé de le rechercher et je ne trouve rien sur la version jQuery.

Sur un point connexe, quelqu'un peut-il expliquer ce qu'est le plugin TinyMCE jQuery et comment il se rapporte à ce qui précède? Je pense que c'est peut-être l'écart dans ma compréhension.

Merci d'avance

20
Andy

J'ai rencontré le même problème il y a quelques semaines. Vous n'avez pas besoin d'utiliser tinymce comme plugin jQuery mais l'option est là si vous le souhaitez. La grande majorité du code source de tinymce se trouve dans le fichier tinymce.min.js et le fichier jQuery.tinymce.min contient simplement le code qui encapsule la fonctionnalité tinymce dans un plugin jQuery. Quoi qu'il en soit, si vous souhaitez l'utiliser, vous aurez besoin des deux.

<script src="/js/jquery-1.10.2.js" type="text/javascript"></script>
<script src="/js/tinymce/tinymce.min.js" type="text/javascript"></script>
<script src="/js/tinymce/jquery.tinymce.min.js" type="text/javascript"></script>

La seule différence principale pour autant que je sache en termes de TinyMCE est la façon dont l'éditeur est initialisé. Si vous n'utilisez pas jQuery, vous l'initialisez quelque chose comme ceci:

tinymce.init({
    selector: 'textarea',
    theme: "modern"
    ...
}) 

Alors que lorsque vous l'utilisez en tant que plugin jQuery, vous pouvez utiliser jQuery pour l'initialiser et vous avez l'avantage supplémentaire de pouvoir enchaîner des qualités jQuery supplémentaires sur votre méthode d'initialisation. Un péché:

$('textarea').html('<p>some dynamic content</p>').tinymce({
   theme: "modern",
   ...
})

À part cela, ils sont fondamentalement les mêmes, je pense.

33
2potatocakes

La version tinymce jQuery permet à un développeur d'utiliser les commandes jQuery concernant l'éditeur tinymce. Je déconseille fortement à quiconque écoute de ne pas utiliser la version jQuery de tinymce et de s'en tenir à la version régulière de tinymce. La raison en est simple: la surcharge de création d'objets et d'éléments supplémentaires à l'aide de la version jQuery ne pèse pas sur les avantages. En cas d'utilisation de plugins tinymce avec plusieurs gestionnaires d'événements clés, j'ai découvert que la version jQuery tinymce prenait beaucoup de temps pour traiter de nombreux coups de clavier rapides (entraînant un retard de l'apparition des lettres dans l'éditeur). Le chemin à parcourir ici est d'utiliser la construction tinymce régulière et de charger également la jQuery régulière sur le document principal. Il est alors possible d'accéder à tinymce et d'adresser des éléments html à l'aide de jQuery.

8
Thariama

Étant donné la confusion entre la "version" jQuery et le "plugin" jQuery, je pensais que j'enquêterais en ajoutant TinyMCE à un projet jQuery MVC pour le moment.

J'ai installé le package NuGet TinyMCE brut d'Exphox (version JS brute) dans un projet et le package NuGet TinyMCE.jQuery dans un autre projet.

J'ai ensuite comparé les dossiers, les fichiers, la taille, etc. avec Araxis Merge, puis "amélioré" le code source minifié pour examiner le contenu.

Voici les résultats de NuGet:

Les packages NuGet sont identiques à l'exception du seul jquery.tinymce.min.js fichier, qui a été ajouté au package TinyMCE.jQuery NuGet.

Le fichier jQuery est juste un plugin simple pour appliquer le MCE aux éléments jQuery!

Donc, en ce qui concerne les packages NuGet, la version jQuery n'est rien d'autre qu'un plugin implémentant TinyMCE sur des éléments jQuery. Rien d'autre!

Cela va à l'encontre des commentaires trouvés ici http://www.tinymce.com/tryit/3_x/jquery_version.php cet état:

Cet exemple charge une version jQuery spécifique de TinyMCE. Cette version est un peu plus petite car elle n'inclut pas de logique redondante comme le moteur Sizzle.

5
Gone Coding