如果用户尝试关闭在登顶时激活的窗口,我正在使用“PECL uploadprogress”状态进行文件上传,同时使用“beforeunload”警告。
$('#form').click(function() {
$('#upload').submit();
ajaxd();
setInterval("ajaxd()",1000);
(...)
$(window).bind("beforeunload", function() {
/* return true || confirm("Do you really want to close?"); */
return confirm("Do you really want to close?");
});
}
function ajaxd() {
$.ajax({
dataType: "json",
(...) // get and workaround progress for upload-bar
});
}
现在我需要在某处解除“前卸载”...
$(window).unbind();
... 但是哪里?$.ajax({ }).done 或 .complete 在这里不起作用,因为函数在重复。还有.ajaxStop。我需要一个“文件传输完成”事件来解除绑定。我可以使用类似的东西
if $progress_percent > 90 { unbind() }
(当文件传输完成时,表单跟随目标(动作)。页面将关闭。可能在脚本达到 100% 之前。用户在此卸载时收到警告。这就是我试图通过使用 >90 来避免的==100。)
但我不喜欢这种方式。有更好的解决方案吗?