0

我有动态页面加载,并且在页面中有链接,每个链接都使用 CKEditor 打开编辑表单

我用于调用这些表单的 JavaScript 函数:

function editProduct(id) {
    $("#add-product").hide();
    if (CKEDITOR.instances['editor']) {
        CKEDITOR.remove(CKEDITOR.instances['editor']);
    }
    $("#edit-product").load(homeurl+"/admin/edit/product",{id:id},function(){
        $.getScript(homeurl+"/js/jquery.MultiFile.js");
        $("#edit-product").find("#editor").ckeditor();
        $("#edit-product").show();
    });
}

所以如果存在的话,我会销毁 CKEditor 实例。在 forst 页面加载和打开表单上,一切正常,但是当我在打开编辑表单后单击其他链接时,它会打开另一个部分,它显示 CKEditor 但不发送 POST 数据。我不使用 jQuery 来发送数据。我像这样将数据传递给 iframe:

<form action="/admin/add/product" enctype="multipart/form-data" method="post" target="upload_iframe">

发送数据后,我用这个 JavaScript 函数刷新动态内容(它还检查编辑器实例并销毁它们)

function showPage(page) {
    act_page = page;
    $("#dynamic-content").load(homeurl+"/admin/getpage",{page:page},function(){
        if (CKEDITOR.instances['editor']) { 
            CKEDITOR.remove(CKEDITOR.instances['editor']); 
        }
        $('html,body').find('#editor').ckeditor();
    });
}
4

1 回答 1

1

所以如果存在的话,我会销毁 CKEditor 实例。

不,你不是在破坏编辑器。使用editor.destroy()方法而不是私有的CKEDITOR.remove,它只做部分清理工作。

你应该有:

if (CKEDITOR.instances.editor) {
    CKEDITOR.instances.editor.destroy();
}
于 2013-05-20T17:38:10.000 回答