-1
下面是浏览器的脚本保存 “edit_body” 字段:CKEditor的 - 内置编辑:浏览器的信息不完整的内容
<script>
$(document).ready(function(){
$("#save_editable").click(function(){
var edit_body = $("#edit_body").html();
setTimeout(function(){
$.ajax({
url:'http://my-url.com/my_editor.php?id_to_update=123',
type:'POST',
data:{edit_body:edit_body},
success:function(data){
if(data=='1'){
alert('Saved');
}
}
});
},5000);
});
});
</script>
服务器下一步:
if(@$_POST["edit_body"]){
$id_to_update=intval($_GET['id_to_update']);
$edit_body=iconv('UTF-8', 'windows-1251', html_entity_decode($_POST["edit_body"], ENT_QUOTES, "utf-8"));
if(mysql_query(sprintf('update my_table set body="%s" where id="%s";',$edit_body,$id_to_update)){
print '1';
}
}
问题是: 当“edit_body”包含大量文本时,它会成功保存,但未满内容。 浏览器越弱,保存的文本就越少。 在这种情况下,我已经使setTimeout函数延迟5秒。但它有一些帮助..
我如何告诉浏览器在Ajax post之前等待处理变量“edit_body”?使用的CKEditor的getData()方法来获取文档,而不是jQuery的HTML()方法
*较弱的浏览器*世界是什么意思?你看看发送给服务器的是什么?当你从控制台/ Fiddler看它时,它是否在发布请求中?你是否取消了'save_editable'的点击动作? – epascarello 2013-02-12 13:24:43
当我在浏览器中打开了超过20个选项卡时,它工作得更慢,并使用更多时间从页面中的字段中获取变量。一切都与服务器端好。我没有取消任何东西。等待。 – punosound 2013-02-12 14:18:02