我试图通过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>