CKEDITOR如何通过json发送HTML数据

时间:2015-05-06 07:02:35

标签: javascript html ajax json ckeditor

我试图通过ajax / json将我的CKEDITOR数据保存回CMS。但是,如果数据中存在二进制内联(例如粘贴的图像),则ajax失败。我似乎遇到了像\,"等特殊字符的问题。

在我通过json提交之前,我找不到一个可以从CKEditor.getData中转义所有HTML的编码/转义方法。

只要我不放置\(反斜杠)或将图像粘贴到CKEditor中,下面的代码就可以正常工作。

<div id="content" contenteditable=true>
   ... sample content...
</div>
<script>

CKEDITOR.disableAutoInline = false;

var editor = CKEDITOR.inline( 'content', {
    on: {
        instanceReady: function() {
            periodicData();
        }
    }
} );

var periodicData = ( function(){
    var data, oldData;
    return function() {
        if ( ( data = editor.getData() ) !== oldData ) {
            oldData = data;
            store(data);
        }

        setTimeout( periodicData, 1000 );
    };

})();

function store(data) {

newData = '{ "entry" : { "name" : "Body", "type" : "HTMLComponent", "content" : { "type" : "text/html", "value" : "'+data+'" } } }';

$.ajax({
    type: 'put',
    contentType: "application/json",
    headers: {"contentType": "application/json", "Accept" : "application/json"},
    url: url,
    data: newData
});
}

</script>

0 个答案:

没有答案