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.

23
demandé sur ꜱᴜʀᴇꜱʜ ᴀᴛᴛᴀ 2013-07-20 09:45:25

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');
18
répondu Thariama 2013-07-22 09:39:18

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é

31
répondu assassinatorr 2014-04-08 09:50:14

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();
29
répondu Martin Sansone - MiOEE 2015-01-17 17:44:30

Le code suivant fonctionne

tinymce.get(id).remove();
10
répondu nikmauro 2017-07-05 02:09:38

Utilisez simplement

tinymce.remove()

pour supprimer tous les éditeurs.

7
répondu Janak Bhatta 2016-08-16 16:16:10

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')]

3
répondu eithed 2017-08-10 16:01:18

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é.

2
répondu blacksunshineCoding 2015-10-09 13:29:57

tinymce.EditorManager.supprimer() C'était pour moi

2
répondu george 2016-05-06 18:02:33

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);
}
1
répondu JensB 2016-07-15 08:27:27

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

0
répondu null_logic 2015-05-04 17:59:01

nous avons été faire d'erreur sur l'appel de

elementReference.destroy() // destroy est un dojo de la fonction

nous avons remplacé ce code par

elementReference.domNode.remove()

nous utilisions aussi du tinymce.min.js, and it was giving us NS_ERROR_UNEXPECTED

0
répondu Akshay Vijay Jain 2016-07-01 11:04:32
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'});
}
0
répondu Mem Maina 2017-02-22 14:45:30

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

0
répondu Michele Caggiano 2018-02-22 12:23:48