TinyMCE 4-eliminar () o destruir()


Estoy usando el editor TinyMCE. Quiero eliminar o destruir los editores de tinymce (la página contiene más de un editor). También elimina clases e IDS añadidos por TinyMCE.

Pero deja contenidos editables

Lo intenté:

tinymce.remove()
tinymce.destroy()
tinymce.execCommand('mceRemoveControl',true,'.editable');

Tenga en cuenta:

Mi clase de editor es .editable, y tengo más de un editor en mi página.

13 answers

Necesita un id de editor (que generalmente es igual al id de los elementos raíz html de su editor (en la mayoría de los casos un área de texto)).

Ejemplo:

tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id');
 18
Author: Thariama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-22 09:39:18

Yo tenía el mismo problema. En v4 todas las sugerencias anteriores no funcionaron para mí, pero esto sí:

tinymce.remove("div.editable");

... regenerated HTML dynamicaly ...

tinymce.init(...);

Uso el editor en línea:

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"});

Espero que esto haya ayudado

 31
Author: assassinatorr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-08 09:50:14

En caso de que alguien haya llegado aquí que esté usando la versión jQuery de TinyMCE, use lo siguiente para eliminar una instancia :

$("#textarea_id").tinymce().remove();
 29
Author: Martin Sansone - MiOEE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-17 17:44:30

El siguiente código está funcionando

tinymce.get(id).remove();
 10
Author: nikmauro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-05 02:09:38

Simplemente use

tinymce.remove()

Para eliminar todos los editores.

 7
Author: Janak Bhatta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-16 16:16:10

Tenga en cuenta que si textarea tiene un id, TinyMCE lo usará por alguna extraña razón, incluso si el parámetro selector se ha utilizado para aplicar el editor al elemento dado. Este id se usa en el array interno - tinyMCE.editors que no se borra (no se borra si va a usar tinymce.execCommand('mceRemoveControl', true, [id]), remove en realidad elimina editors y evita que TinyMCE se aplique nunca más). Como tal, si tiene un contenido dinámico con TinyMCE aplicado, funcionará una vez, pero nunca más. Para resolver esto, debe limpiar esta matriz manualmente per delete tinyMCE.editors[$(node).getAttribute('id')]

 3
Author: eithed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-10 16:01:18

Si tiene varias instancias de TinyMCE, puede usar el siguiente fragmento de código para cerrar cada instancia 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);
}

Lo uso antes de cargar el contenido Ajax.

 2
Author: blacksunshineCoding,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-09 13:29:57

Tinymce.EditorManager.quitar() Esto estaba funcionando para mí

 2
Author: george,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-06 18:02:33

Un poco tarde para la fiesta, pero recientemente agregué la versión TinyMCE jQuery a mi proyecto angular. Por algunas razones, no quería usar el código angular de 3rd party y solo quería que la versión de jQuery funcionara.

Así que aquí está mi código para hacer TinyMCE 4.x trabajo en angular, incluso con ng-repetir.

Todo lo que tiene que hacer es decorar sus áreas de texto con la clase "TinyMCEEditorBox" y llamar a este método en cualquier momento que elimine o agregue elementos que resulten en una actualización (como añadido a una repetición ng).

$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
Author: JensB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-15 08:27:27

Cuando se utiliza el tiyMCE.init ({}) fuction, la respuesta de @ nikmauro funciona para mí, por lo que para cada descarga de la página, solo tienes que activar el tinymce.get ("real_element_id").remove ();

Ese método funciona para mí.

POR cierto, me divierte esta versión

//tinymce.cachefly.net/4.1/tinymce.min.js

 0
Author: null_logic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-04 17:59:01

Recibimos un error al llamar
elementReference.destroy() // destroy es una función dojo
reemplazamos ese código con
elementReference.domNode.remove()
también estábamos usando tinymce.min.js, y nos estaba dando NS_ERROR_UNEXPECTED

 0
Author: Akshay Vijay Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
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
Author: Mem Maina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-22 14:45:30

Simplemente necesita usar este código para eliminar todo el área de texto editable:

TinyMCE.quitar(".editable");

Aquí más información sobre TinyMCE remove: http://archive.tinymce.com/wiki.php/api4:method.tinymce.EditorManager.remove.static

 0
Author: Michele Caggiano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-22 12:23:48