TinyMCE 4 – remove()或destroy()

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

但留下可编辑的内容

我试过了 :

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

请注意:

我的编辑器类是.editable ,我的页面中有一个以上的编辑器。

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

例:

 tinymce.execCommand('mceRemoveControl', true, 'my_original_textarea_id'); 

我有同样的问题。 在第4节中,上述所有建议对我都不起作用,但这样做:

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

希望这有帮助

如果有人到达这里使用jiny版本的TinyMce,请使用以下代码删除实例

 $("#textarea_id").tinymce().remove(); 

以下代码正在运行

 tinymce.get(id).remove(); 

简单地使用

 tinymce.remove() 

删除所有编辑器。

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

如果你有多个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内容之前使用它。

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

派对的时间不多但我最近在我的角度项目中添加了tinyMCE jQuery版本。 由于一些原因,我不想使用角度第三方代码,只是想让jQuery版本工作。

所以这是我的代码,使TinyMCE 4.x工作在角度,甚至与ng-repeat。

您所要做的就是使用类“TinyMCEEditorBox”装饰您的textareas并在您删除或添加导致更新的项目时调用此方法(例如将更多项目添加到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); } 

当使用tiyMCE.init({})函数时,@ nimauro的答案对我有用,所以对于每次卸载页面,你只需触发tinymce.get(“real_element_id”)。remove();

那种方法适合我。

顺便说一下,我很喜欢这个版本

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

我们在打电话时遇到错误
elementReference.destroy() // destroy是一个dojo函数
我们用。替换了那个代码
elementReference.domNode.remove()
我们也使用tinymce.min.js,它给了我们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'}); } 

您只需使用此代码即可删除所有可编辑的textarea:

tinyMCE.remove( “编辑。”);

有关tinyMCE的更多信息,请访问: http : //archive.tinymce.com/wiki.php/api4 : method.tinymce.EditorManager.remove.static