我正在将CKEditor集成到更大的项目中,该项目使用"tabs"一次显示多个屏幕.切换标签时,我会分离包含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>
Run Code Online (Sandbox Code Playgroud)
你可以在这里试试:http://jsfiddle.net/kxtxz/6/
谁有经验并最终解决了类似的问题?
CKEditor 实例背后的逻辑非常依赖 DOM 结构,如果你修改它,它确实会被破坏。
但有一个简单的解决方案。在分离之前先获取数据:
var savedData = CKEDITOR.instances.instanceName.getData();
Run Code Online (Sandbox Code Playgroud)
然后基本上调用:
CKEDITOR.instances.instanceName.destroy();
Run Code Online (Sandbox Code Playgroud)
分离时,然后重新创建编辑器
CKEDITOR.appendTo( 'section1', null, savedData );
Run Code Online (Sandbox Code Playgroud)
附加时。
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |