TinyMCE 4-supprimer () ou détruire()
j'utilise TinyMCE editor. Je veux supprimer ou détruire les éditeurs tinymce (Page contenant plus d'un éditeur). Supprimer également les classes et les identifiants ajoutés par tinyMCE.
Mais laissez modifiable contenu
j'ai essayé :
tinymce.remove()
tinymce.destroy()
tinymce.execCommand('mceRemoveControl',true,'.editable');
remarque:
ma classe d'édition est .editable
, Et j'ai plus l'un des éditeurs dans ma page.
13 réponses
Vous avez besoin d'un editor id (qui est généralement égal à votre editor html root elements id (dans la plupart des cas un textarea)).
Exemple:
tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id');
j'ai eu le même problème. Dans v4 toutes les suggestions ci-dessus n'ont pas fonctionné pour moi, mais cela a fait:
tinymce.remove("div.editable");
... regenerated HTML dynamicaly ...
tinymce.init(...);
tinymce.init({
selector: "div.editable",
inline: true,
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
menubar: false,
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"});
Espère que cela a aidé
Juste au cas où quelqu'un est arrivé ici, et qui est à l'aide de jQuery version de TinyMce utiliser ce qui suit pour supprimer un exemple:
$("#textarea_id").tinymce().remove();
Utilisez simplement
tinymce.remove()
pour supprimer tous les éditeurs.
gardez à l'esprit que si textarea
a un id, tinyMCE l'utilisera pour une raison étrange, même si selector
paramètre a été utilisé pour appliquer l'éditeur d'élément donné. Cet identifiant est ensuite utilisé dans le tableau interne - tinyMCE.editors
qui n'est pas effacé (n'est pas effacé si vous utilisez tinymce.execCommand('mceRemoveControl', true, [id])
,remove
supprime en fait editors
et empêche l'application de tinyMCE à nouveau). En tant que tel si vous avez un contenu dynamique avec tinyMCE appliqué, il fonctionnera une fois, mais jamais plus. Pour résoudre ce dont vous avez besoin pour nettoyer ce tableau manuellement par delete tinyMCE.editors[$(node).getAttribute('id')]
si vous avez plusieurs Instances de TinyMCE, vous pouvez utiliser l'extrait de code suivant pour fermer chaque instance de TinyMCE:
for (var i = tinymce.editors.length - 1 ; i > -1 ; i--) {
var ed_id = tinymce.editors[i].id;
tinyMCE.execCommand("mceRemoveEditor", true, ed_id);
}
Je l'utilise avant que le contenu Ajax ne soit chargé.
un peu tard pour la fête mais j'ai récemment ajouté la version tinyMCE jQuery à mon projet angulaire. Pour quelques raisons, je ne voulais pas utiliser le code de tiers angulaire et je voulais juste que la version jQuery fonctionne.
voici donc mon code pour faire TinyMCE 4.x travailler en angle, même avec ng-répéter.
Tout ce que vous avez à faire est de décorer vos textareas avec la classe "TinyMCEEditorBox" et d'appeler cette méthode chaque fois que vous retirez ou ajoutez des éléments qui résultent en une mise à jour (tels que plus les éléments ajoutés à une ng-repeat).
$scope.RebindTinyMCE = function ()
{
var tmceSelector = ".TinyMCEEditorBox";
for (var i = tinymce.editors.length - 1 ; i > -1 ; i--)
{
tinyMCE.execCommand("mceRemoveEditor", true, tinymce.editors[i].id);
}
setTimeout(function () {
$(tmceSelector).tinymce({
menubar: false,
statusbar: false,
toolbar: 'bold italic underline | alignleft aligncenter alignright | bullist numlist outdent indent | link',
});
}, 50);
}
lors de l'utilisation de la tiyMCE.INIT ({}) fuction, la réponse de @nikmauro fonctionne pour moi, donc pour chaque déchargement de la page, vous déclenchez juste le tinymce.get ("real_element_id").supprimer();
Cette méthode fonctionne pour moi.
BTW, j'amusant cette version
/ / tinymce.cachefly.net/4.1/tinymce.min.js
nous avons été faire d'erreur sur l'appel deelementReference.destroy()
// destroy est un dojo de la fonction
nous avons remplacé ce code parelementReference.domNode.remove()
nous utilisions aussi du tinymce.min.js, and it was giving us NS_ERROR_UNEXPECTED
if (typeof tinyMCE != 'undefined') {
if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) {
tinyMCE.editors=[];
}
tinyMCE.editors=[]; tinymce.init({selector:'textarea', plugins : 'advlist autolink link image lists charmap print preview'});
}else{
tinymce.init({selector:'textarea', plugins : 'advlist autolink link image lists charmap print preview'});
}
il vous suffit d'utiliser ce code pour supprimer tous les textes modifiables:
tinyMCE.supprimer."(modifiable");
ici plus d'informations sur tinyMCE supprimer: http://archive.tinymce.com/wiki.php/api4:method.tinymce.EditorManager.remove.static