移除 CKEditor 实例

Posted

技术标签:

【中文标题】移除 CKEditor 实例【英文标题】:Remove CKEdit Instance 【发布时间】:2011-02-28 10:45:27 【问题描述】:

我似乎无法按照文档销毁 CKEdit 的实例。

考虑以下几点:

<input name="txt1" type="text" id="txt1" /><br />
<a href="javascript:void(0);" onclick="create()">Create</a><br />
<a href="javascript:void(0);" onclick="destroy()">Destroy</a>
<script type= "text/javascript" >
<!--
function create() 
    var hEd = CKEDITOR.instances['txt1'];
    if (hEd) 
        CKEDITOR.remove(hEd);
    
    hEd = CKEDITOR.replace('txt1');

function destroy()
    var hEd = CKEDITOR.instances['txt1'];
    if (hEd) 
        CKEDITOR.remove(hEd);
    

-->
</script>

当 destroy() 运行时,CKEDITOR.remove(hEd);正在被调用。多次单击 create() 在屏幕上生成多个 CKEditor 实例,但它们的实例不再出现在 CKEDITOR.instances 中。

我错过了什么吗?

【问题讨论】:

【参考方案1】:

您必须使用 hEd.destroy (editor.destroy())。

CKEDITOR.remove() 供内部使用,如 API 中所述。

【讨论】:

跟踪了一个错误的 sn-p。谢谢你让我直截了当。 @AlfonsoML 谢谢你 - 你救了我的怒火 :) 是的,没错。如果您使用 CKEDITOR.remove() 则实例不会被破坏。你需要调用 sth like: instance.destroy() 来删除旧的。【参考方案2】:

简单的解决方案

CKEDITOR.instances['textareaId'].destory()

【讨论】:

【参考方案3】:

你必须使用:

<textarea name="tx1" id="tx1" rows="15" cols="106"></textarea>

CKEDITOR.instances['tx1'] = false;

【讨论】:

以上是关于移除 CKEditor 实例的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CKEditor 5 实例中获取数据

CKEditor 实例已经存在

如何正确销毁 CKEditor 实例?

如何使用ng-repeat获取ckeditor的实例?

无法获取 CKEditor 的实例

CKEDITOR:从Javascript中的多个实例名称中获取数据