删除并附加到DOM后CKEditor已损坏
我正在将CKEditor集成到更大的项目中,该项目使用“选项卡”一次显示多个屏幕。切换制表符时,我分离了包含CKEditor的制表符div。当我再次连接它时,CKEditor已损坏。它是可见的,但它松散的文本,它是不可能写在它的文本了 示例代码:删除并附加到DOM后CKEditor已损坏,ckeditor,Ckeditor,我正在将CKEditor集成到更大的项目中,该项目使用“选项卡”一次显示多个屏幕。切换制表符时,我分离了包含CKEditor的制表符div。当我再次连接它时,CKEditor已损坏。它是可见的,但它松散的文本,它是不可能写在它的文本了 示例代码: <script src="http://ckeditor.com/apps/ckeditor/4.2/ckeditor.js?mriyyd"></script> <div id="section1"> <
<script src="http://ckeditor.com/apps/ckeditor/4.2/ckeditor.js?mriyyd"></script>
<div id="section1">
<script>
CKEDITOR.appendTo('section1',
null,
'<p>This is some <strong>sample text</strong>.</p>');
</script>
</div>
<script>
var s = document.getElementById('section1');
var sP = s.parentNode;
</script>
<button onClick="sP.removeChild(s);">Detach</button>
<button onClick="sP.appendChild(s);">Attach</button>
CKEDITOR.appendTo('section1',
无效的
“这是一些示例文本”;
var s=document.getElementById('section1');
var sP=s.parentNode;
拆卸
贴上
您可以在这里尝试:
有没有人经历过并最终解决过类似的问题?CKEditor实例背后的逻辑非常依赖于DOM结构,如果您修改它,它确实会被破坏 但有一个简单的解决办法。在拆离之前,先获取数据:
var savedData = CKEDITOR.instances.instanceName.getData();
然后基本上叫:
CKEDITOR.instances.instanceName.destroy();
拆离时,使用重新创建编辑器
CKEDITOR.appendTo( 'section1', null, savedData );
连接时 它在从DOM分离后被破坏,因为iframe随后被浏览器卸载。除此之外,其他一切都可以工作。这个解决方案工作正常。谢谢从这里可以看出:我希望在没有像这样的变通办法的情况下让它工作,但我担心这是不可能的。