CKEDITOR getData:在提交数据之前等待方法完成

时间:2013-07-16 21:45:40

标签: javascript asynchronous ckeditor

我通过CKonBlur方法为每个textareas调用$(document).ready(..一个来注册我的每个textareas:

function CKonBlur(name) {
    CKEDITOR.instances[name].on('blur', function () {
        CKsync(name);  // push HTML data from CKEDITOR into the associated textarea
        storeNotifications(name);  // submit the textarea to the server
    });
}


function CKsync(name) {
    $("textarea#" + name).val(CKEDITOR.instances[name].getData());
}

不幸的是,似乎getData是异步的,我无法想出在(!)提交数据之前等待它完成的方法。

问题:在调用getData方法之前,如何确保storeNotifications完成?

我还尝试使用checkDirty但没有取得任何成功(它只是使浏览器崩溃):

function CKsync(name) {
    while (CKEDITOR.instances[name].checkDirty() == true);
    {
        // do nothing
    }
    $("textarea#" + name).val(CKEDITOR.instances[name].getData());
}

1 个答案:

答案 0 :(得分:1)

我100%确定getData()不是异步的。 setData()是,getData()不是。它不可能,因为它返回一个值。你在其他地方有一个bug。