33

我正在使用TinyMCE 编辑器。 我想删除或销毁 tinymce 编辑器(页面包含多个编辑器)。同时删除由 tinyMCE 添加的类和 ID。

但留下可编辑的内容

我试过了 :

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

请注意:

我的编辑器类是.editable,而且我的页面中有多个编辑器。

4

15 回答 15

50

我有同样的问题。在 v4 中,上面的所有建议都对我不起作用,但这确实:

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

希望这有帮助

于 2014-04-08T09:50:14.210 回答
31

以防万一任何使用 jQuery 版本的 TinyMce 的人到达这里,请使用以下命令来删除实例

$("#textarea_id").tinymce().remove();
于 2013-12-29T01:59:46.707 回答
21

您需要一个编辑器 id(通常等于您的编辑器 html 根元素 id(在大多数情况下是 textarea))。

例子:

tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id');
于 2013-07-22T09:09:13.413 回答
15

以下代码正在运行

tinymce.get(id).remove();
于 2015-02-17T13:35:30.320 回答
9

只需使用

tinymce.remove()

删除所有编辑器。

于 2016-08-16T16:16:10.013 回答
4

您只需使用此代码即可删除所有可编辑的文本区域:

tinyMCE.remove(".editable");

这里有关 tinyMCE 删除的更多信息:http: //archive.tinymce.com/wiki.php/api4 :method.tinymce.EditorManager.remove.static

于 2018-02-22T12:23:48.363 回答
4

请记住,如果给定textarea有一个 id,tinyMCE 将出于某种奇怪的原因使用它,即使selector已使用参数将编辑器应用于给定元素。然后在内部数组中使用此 id -tinyMCE.editors它不会被清除(如果您将使用不会被清除tinymce.execCommand('mceRemoveControl', true, [id])remove实际上会删除editors并阻止 tinyMCE 再次应用)。因此,如果您有一个应用了 tinyMCE 的动态内容,它将工作一次,但再也不会工作了。要解决此问题,您需要手动清理此阵列delete tinyMCE.editors[$(node).getAttribute('id')]

于 2016-10-06T16:00:16.770 回答
2

如果您有多个 TinyMCE 实例,您可以使用以下代码片段来关闭 TinyMCE 的每个实例:

for (var i = tinymce.editors.length - 1 ; i > -1 ; i--) {
    var ed_id = tinymce.editors[i].id;
    tinyMCE.execCommand("mceRemoveEditor", true, ed_id);
}

我在加载 Ajax 内容之前使用它。

于 2015-10-09T13:29:57.137 回答
2

tinymce.EditorManager.remove() 这对我有用

于 2016-05-06T18:02:33.617 回答
1

聚会有点晚了,但我最近在我的 Angular 项目中添加了 tinyMCE jQuery 版本。出于几个原因,我不想使用 angular 3rd 方代码,只想让 jQuery 版本工作。

所以这是我让 TinyMCE 4.x 以角度工作的代码,即使使用 ng-repeat 也是如此。

您所要做的就是用“TinyMCEEditorBox”类装饰您的文本区域,并在您删除或添加导致更新的项目时调用此方法(例如将更多项目添加到 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);
}
于 2016-07-15T08:27:27.530 回答
1

伪造处女网站

TinyMCE 将检查它是否已经加载到window.scripts. 如果您删除相应的条目,TinyMCE 将表现得像一个未触及的文档。

function cleanTinyMCE() {
  for (var i=0; i < window.scripts.length; i++) {
    if (window.scripts[i].match('.*tinymce.*js.*')){
      delete window.scripts[i];
      return;
    }
  }
}
于 2019-06-30T20:15:29.483 回答
0

使用 时tiyMCE.init({}) fuction,@nikmauro 的答案对我有用,因此对于页面的每次卸载,您只需触发tinymce.get("real_element_id").remove();

这种方法对我有用。

顺便说一句,我很有趣这个版本

//tinymce.cachefly.net/4.1/tinymce.min.js 
于 2015-05-04T17:59:01.157 回答
0
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'});
}
于 2017-02-22T14:45:30.990 回答
0

通过简单地使用它,您可以删除TinyMCE编辑器:

tinymce.remove('#your_textarea_id');
于 2020-03-27T06:49:50.797 回答
0

我们在调用时遇到错误
elementReference.destroy() //destroy 是一个 dojo 函数
,我们用同样使用 tinymce.min.js 替换了该代码
elementReference.domNode.remove()
,它给了我们 NS_ERROR_UNEXPECTED

于 2016-07-01T11:04:32.640 回答