我正在使用CKeditor允许用户在登录后内联编辑页面上的内容。
我知道我可以使用以下方式访问数据:
var data = CKEDITOR.instances.editable.getData();
但我不知道如何将数据发送到脚本,以便我可以更新数据库。如果每次有人取消选择contenteditable
元素时脚本运行会很酷......但我不知道那是否可能。
任何提示都会很棒! :)
我的网站是使用php / mysql构建的。
答案 0 :(得分:20)
这样的事情:
CKEDITOR.disableAutoInline = true;
CKEDITOR.inline( 'editable', {
on: {
blur: function( event ) {
var data = event.editor.getData();
// Do sth with your data...
}
}
} );
请注意,这不适用于其他交互,例如:用户名为editor.setData()
或用户在编辑时关闭了网页。在这种情况下,内容将丢失。如果我是你,我宁愿定期检查新数据:
CKEDITOR.disableAutoInline = true;
var editor = CKEDITOR.inline( 'editable', {
on: {
instanceReady: function() {
periodicData();
}
}
} );
var periodicData = ( function(){
var data, oldData;
return function() {
if ( ( data = editor.getData() ) !== oldData ) {
oldData = data;
console.log( data );
// Do sth with your data...
}
setTimeout( periodicData, 1000 );
};
})();
答案 1 :(得分:3)
CKEDITOR.inline('editable' ,{
on:{
blur: function(event){
if (event.editor.checkDirty())
console.log(event.editor.getData());
}
}
});
试试这个。
答案 2 :(得分:1)