如何将 tinyMCE 编辑器重新绑定到移动的 dom 元素?

How to rebind tinyMCE editor to a moved dom element?

我在这样的结构下列出了 tinyMCE 插件:

Email-Workspace
 module-container
  email-contact-ui
   inner-container
    email-body-section
    email-editor
     mceu_12
      mceu_12-body

用户事件将模块容器元素移动到另一个位置

New-Workspace
module-container
 email-contact-ui
  inner-container
   email-body-section
    email-editor

然而,在电子邮件编辑器下,tinyMCE 似乎不再绑定到新的 DOM 位置。

What I see:
* tinyMCE.editors.length --> 1
* tinyMCE.editors[0].getBody() --> shows correct body text

I've tried: 
* destroying editor and reinit, 
* I've tried this with .destroy, remove, tinyMCE.EditorManager.execCommand 'mceRemoveEditor' and 'mceAddEditor', true. 

None 这些似乎重新绑定到现有的 DOM 元素?

还有其他想法可以尝试吗?

如果您在 TinyMCE 下操作 DOM,您需要

  1. 从文本区域中删除编辑器(在任何 DOM 操作发生之前)
  2. 执行DOM操作
  3. 在新 DOM 元素上初始化编辑器(在新位置)

如果这不起作用,我会制作一个简单的 TinyMCE Fiddle 或 JS Fiddle 来显示 运行 代码,以便人们可以帮助您确定其失败的原因。

最后,我通过编写 destroyEditor 函数解决了这个问题,该函数将编辑器设置为 null 并允许我在新位置重新绑定它。然后是将重新绑定设置为最后一个可能的事件,以确保所有 DOM 都已到位并进行了任何更改。还需要检查制作过多的编辑器。我确实尝试了网上找到的许多建议,但其中 none 似乎适合我的情况。