Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除并附加到DOM后CKEditor已损坏_Ckeditor - Fatal编程技术网

删除并附加到DOM后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"> <

我正在将CKEditor集成到更大的项目中,该项目使用“选项卡”一次显示多个屏幕。切换制表符时,我分离了包含CKEditor的制表符div。当我再次连接它时,CKEditor已损坏。它是可见的,但它松散的文本,它是不可能写在它的文本了

示例代码:

<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随后被浏览器卸载。除此之外,其他一切都可以工作。这个解决方案工作正常。谢谢从这里可以看出:我希望在没有像这样的变通办法的情况下让它工作,但我担心这是不可能的。