web-dev-qa-db-ja.com

CKEditorインスタンスを削除

ドキュメントによると、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に表示されなくなります。

何か不足していますか?

22
Laramie

HEd.destroy( editor.destroy() )を使用する必要があります。

CKEDITOR.remove() は、APIで述べられている内部使用のためのものです。

40
AlfonsoML