我通过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());
}