Tinymce Erreur - impossible de charger un plugin js fichiers quand chargés dynamiquement
Je suis en train de charger TinyMCE dynamiquement comme (en cliquant sur un bouton):
$.getScript('path/to/mce4/tinymce.min.js', function(){
var def = {
selector: 'textarea',
body_class: 'sp-mce-editor',
content_css : "path/to/styles/mce.css",
plugins: ['advlist autolink lists link image charmap print preview hr anchor pagebreak searchreplace wordcount visualblocks visualchars code insertdatetime media nonbreaking table contextmenu directionality emoticons template paste textcolor fullscreen autoresize'],
toolbar: "bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | fontsizeselect forecolor backcolor | preview fullscreen | template",
toolbar_items_size: 'small',
relative_urls : false,
convert_urls : true,
external_plugins: { "nanospell": "path/to/mce4/nanospell/plugin.js" },
nanospell_server:"php",
file_browser_callback: RoxyFileBrowser,
init_instance_callback: (typeof processEditor != 'undefined' ? processEditor : null)
};
tinymce.init(def);
});
Avec cette configuration, les tinyMCE ne parvient pas à initialiser. Dans la console je vois plusieurs erreurs 404, chacun avec un message du genre:
Failed to load: /path/to/mce4/plugins/textcolor/plugin.js
Sûr de vérifier dans la console le fichier JS tinymce.min.js
charge correctement. Aussi, le /path/to/mce4/plugins/textcolor/plugin.js
n'existe pas. Mais /path/to/mce4/plugins/textcolor/plugin.min.js
existe, et cela est vrai pour tous les fichiers js (i.e. la .min.js
les fichiers sont là, mais tinyMCE pour quelque raison que ce soit est à la recherche pour le .js
fichiers).
Maintenant, lorsque je charge tinyMCE dans un onglet script dans le <head>
, il n'y a pas de problème du tout, et tout fonctionne bien.
Ce qui pourrait être la cause de cette erreur, et comment suis-je censé faire? Si c'est le comportement attendu de tinyMCE, quelle est la bonne façon de charger dynamiquement son fichier js pour le scénario, comme je suis en train de travailler sur?
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez angular2+ angulaire-cli, ce qui suit pourrait vous aider.
Disons que vous voulez ajouter un plugin nommé
autoresize
. Vérifier si ce plugin est présent dansnode_modules/tinymce/plugins
. Si oui, n'suivantes:1.Dans angulaires-cli.json:
2.Dans le intializing composant:
Je ne peux pas vous dire quel est le problème avec votre code, mais cela fonctionne pour moi (TinyMCE 4.x)
J'ai mis le chemin d'accès à tinymce.min.js comme ceci:
De sorte qu'il se charge avec le chargement de la page. De ne pas être chargés dynamiquement.
Puis j'ai fait une fonction définie:
Puis j'ai fait un onclick qui s'exécutent: IactivateMCE() APRÈS le contenu dynamique a été ajoutée sur le site ( j'ai une fonction qui d'abord ajouter du contenu dynamique du site, puis de lancer l'initialisation de TinyMCE).
Espère que cela peut vous être utile 🙂