1

我通过CKonBlur在一个$(document).ready(..方法中为每个文本区域调用一个来注册我的每个文本区域:

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());
}
4

1 回答 1

1

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

于 2013-07-17T07:43:57.900 回答