我真的想把div中的所有html(包含许多其他div,表单元素等),urlencode它(也许)然后做一个ajax帖子到服务器端处理程序,以便我可以保存用户所看到的确切状态。
然后我希望能够将我保存在数据库中的字符串转发回来,以便将来回复ajax调用。
我应该使用以下内容吗?
var contents = escape($('#myDiv').html());
然后对服务器端处理程序执行ajax post操作?将逃脱确保我没有传回任何会扰乱ajax调用的特殊字符吗?
任何指针都表示赞赏。
答案 0 :(得分:2)
如果您将数据作为POST参数发送,则无需担心转义数据。如果它是GET,它实际上会出现在URI中,你需要确保所有内容都被转义。
这就是你真正需要做的事情:
$.post('/my_handler', {'html': $('#myDiv').html()}. function(data){
//do something with data
});
您在/my_handler
处回复的脚本只需要检查该字符串的'html'post参数。例如,如果您使用的是PHP,则只需检查$_POST['html']
。
答案 1 :(得分:1)
我正在使用它:
function htmlEncode(value){ return $('< div />')。text(value).html(); }
function htmlDecode(value){ return $('< div />')。html(value).text(); }
var contents = htmlEncode($('#myDiv')。html());