TinyMCE编辑不喜欢被感动

zne*_*eak 11 html dom tinymce

在我拥有的页面上,我需要偶尔在DOM树中移动TinyMCE编辑器.但是,出于某种原因,编辑不喜欢它:它完全清除并变得无法使用.据我所知,这种行为在Safari 4和Firefox 3.6之间是一致的,但不是Internet Explorer 7/8.这是一个例子.

它真的让我感到沮丧的是做一些在Internet Explorer中工作的东西,但没有更好的浏览器.在文档中是否有一些关于永远不会尝试在DOM树中移动编辑器的内容?有某种解决方法吗?

Tro*_*eld 8

有同样的问题,这是我如何解决它...

创建问题

我使用jquery移动包含tinymce编辑器的dom元素,导致它丢失所有内容:

$('.form-group:last').after($('.form-group:first'))
Run Code Online (Sandbox Code Playgroud)

在此之后,编辑器的iframe内容将被删除.

解决方案

var textareaId = 'id_of_textarea';
tinyMCE.get(textareaId).remove();
tinyMCE.execCommand("mceAddEditor", false, textareaId);
Run Code Online (Sandbox Code Playgroud)

有时编辑器会将iframe添加回来,但不可见.如果是这种情况,请取消隐藏容器:

$textarea = $('#' + textareaId)
$textarea.closest('.mce-tinymce.mce-container').show()
Run Code Online (Sandbox Code Playgroud)

注意,这是使用tinymce 4.x.


小智 7

这是一个浏览器错误/问题,而不是TinyMCE的问题.在某些浏览器中保留iframe内容是不可能的,因为一旦从文档/窗口卸载dom中删除节点.我建议先删除编辑器实例,然后重新添加它,而不是在DOM中移动它.