JavaScript-用iframe上传图片怎么写回调函数?
(function($) {
$.fn.ajaxUpload = function(opts) {
var defaults = {
url: url + "/upload",
after: function() {
alert(0);
}
}
var options = $.extend({}, defaults, opts);
return this.each(function() {
_this = $(this);
var form = $('<form target="ajaxIframe" method="post" enctype="multipart/form-data" id="ajaxUploadForm" />');
var input = $('<input type="file" name="ajaxUploadFile" id="ajaxUploadFile" />');
form.attr("action", url + "/upload");
input.appendTo(form);
_this.append(form);
var iframe = $('<iframe name="ajaxIframe" id="ajaxIframe" />');
iframe.hide().appendTo(form);
$("#ajaxUploadFile").change(function() {
form.submit();
});
});
}
})(jQuery)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
直接写after: function (data, status) ,其中data就是你服务器返回的信息,比如:
after: function (data, status)
{
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
}else
{
alert(data.msg);
}
}
}
标准的ajaxUpload是下面的例子样式:
function ajaxFileUpload()
{
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
$.ajaxFileUpload
(
{
url:'doajaxfileupload.php',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'json',
after: function (data, status)
{
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
}else
{
alert(data.msg);
}
}
},
error: function (data, status, e)
{
alert(e);
}
}
)
return false;
}
你看看跨域不?
不跨域可以直接在js了使用parent取到父窗口的window,要回调哪个方法自己看了。
跨域稍微麻烦点,可以考虑转跳或输出frame,到同一个域下,用URL传参就行。
再用parent,top之类的就可以控制父窗口回调
//你插件的调用方式
$.ajaxUpload({
'url':'http://www.test.php',
'after' : 'callback' //这里不使用匿名函数,而是写个函数名,并且以字符串的形式
})
//定义回调函数
function callback(){
}
接下来就插件还需要完善下:
在创建出来的form 中 增加一个 隐藏域:
var call = $('<input type="hidden" name="call" value="'+options.after+'" />');
将这个也追加到form中:
call.appendTo(form);
然后就是提交之后,页面响应的内容:
1 首先获取 回调函数的名称 $fun = $_POST['call'];
2,类似下边的格式输出:
echo '<script type="text/javascript">parent.'.$fun.'();</script>';
遇到和你一样的问题 上传成功了。不知道回调函数怎么写。。看别人都是将form的的target指向iframe