如何将 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,您需要
- 从文本区域中删除编辑器(在任何 DOM 操作发生之前)
- 执行DOM操作
- 在新 DOM 元素上初始化编辑器(在新位置)
如果这不起作用,我会制作一个简单的 TinyMCE Fiddle 或 JS Fiddle 来显示 运行 代码,以便人们可以帮助您确定其失败的原因。
最后,我通过编写 destroyEditor 函数解决了这个问题,该函数将编辑器设置为 null 并允许我在新位置重新绑定它。然后是将重新绑定设置为最后一个可能的事件,以确保所有 DOM 都已到位并进行了任何更改。还需要检查制作过多的编辑器。我确实尝试了网上找到的许多建议,但其中 none 似乎适合我的情况。
我在这样的结构下列出了 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,您需要
- 从文本区域中删除编辑器(在任何 DOM 操作发生之前)
- 执行DOM操作
- 在新 DOM 元素上初始化编辑器(在新位置)
如果这不起作用,我会制作一个简单的 TinyMCE Fiddle 或 JS Fiddle 来显示 运行 代码,以便人们可以帮助您确定其失败的原因。
最后,我通过编写 destroyEditor 函数解决了这个问题,该函数将编辑器设置为 null 并允许我在新位置重新绑定它。然后是将重新绑定设置为最后一个可能的事件,以确保所有 DOM 都已到位并进行了任何更改。还需要检查制作过多的编辑器。我确实尝试了网上找到的许多建议,但其中 none 似乎适合我的情况。