iframe成功异步上传后,怎么调用前端的回调函数??
现在成功异步上传了,,需要有个回调函数。。 不知道怎么调用这个函数,求指导。。
------解决方案--------------------
Form:
<form action="#" method="post" enctype="multipart/form-data" onsubmit="return chekcForm(this)">
Struts :
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.print("JSON字串"); // {"statusCode":200; "message":"成功"; "loadUrl":"http://"}
out.flush();
out.close();
JQ:
var frame = {
ajaxDone:function(json){
if (json.statusCode == 200){
$('#messageDiv').html(json.message).show();
$.jquery.load(json.loadUrl);
} else {
}
},
frameDone:function(config){
var ifr = null,
fm = null,
defConfig = {
formObj: $('#form'),
complete: function(response) {},
};
config = $.extend(defConfig, config);
var $form = config.formObj;
var frameName = 'callbackframe';
ifr = $('<iframe name="'+ frameName +'" id="'+ frameName +'" style="display:none;"></iframe>');
ifr.appendTo($('body'));
$form.attr("target",frameName);
ifr.load(function(){
var response = this.contentWindow.document.body.innerHTML;
config.complete.call(this, response);
ifr.remove();
ifr = null;
});
return false;
}
}
function checkForm(form){
frame.frameDone({
formObj: $form,
complete: function(response){
var j = $.parseJSON(response);
frame.ajaxDone(j);
}
});
return true;
}
------解决方案--------------------个人愚见:
创建一个空的jsp页面,你的action文件上传中,最后返回到该页面。同时,将你需要掉的回调函数的名称告诉给该页面。。。
然后在这个空页面上写几行js代码。。。使用window.parent["回调函数的名称"]();
当然,这其中,不要急着remove掉你创建的iframe。