javascript - 如何在服务器上保存内联编辑器内容?

标签 javascript ajax ckeditor

<分区>

我使用 CKeditor 允许用户在登录后内联编辑页面上的内容。

我知道我可以使用以下方式访问数据:

var data = CKEDITOR.instances.editable.getData();

但我不知道如何将数据发送到脚本以便更新数据库。如果脚本在每次有人取消选择 contenteditable 元素时运行,那就太好了……但我不知道这是否可能。

任何提示都会很棒! :)

我的站点是使用 php/mysql 构建的。

最佳答案

像这样:

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

关于javascript - 如何在服务器上保存内联编辑器内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13922002/

相关文章:

javascript - jquery可拖动并更改背景容器的颜色

javascript - 获取 Iframe 的内部元素

javascript - 鼠标悬停时无限旋钮

javascript - 在请求完成之前无法计算 polymer iron-ajax header 属性

jquery - 提交常规表单之前的 AJAX 请求

javascript - 防止 CKEditor 中的 XSS

javascript - ckeditor + setData = 额外段落

javascript - 使用 jquery 选择复选框后表单按钮不起作用

ckeditor - 来自 FAL 的 Typo3 CKEditor 图像

javascript - 使用 AJAX 将数据从 Javascript 移动到 PHP