Javascript Chrome后退按钮意外终止上传流
我使用ajax更新/进度条为用户提供基于表单的文件上载,一次上载一个。我想给他们一个提醒,如果他们导航离开,任何当前上传将被取消。除了Chrome v.18之外,以下代码实现了这一目标。如果单击Chrome中的后退按钮,文件上载流将立即终止,抛出org.apache.commons.fileupload.FileUploadBase$IOFileUploadException:处理多部分/表单数据请求失败。流从commons.fileupload库意外结束 我找不到关于这个问题的任何具体信息,但是有人知道这是不是我现在不得不忍受的事情吗?谢谢 编辑:我应该补充一点,Chrome仍然显示“离开页面”对话框,但此时上传已经停止,所以答案根本不会影响它。在Chrome中单击链接不会停止上传,其行为符合预期Javascript Chrome后退按钮意外终止上传流,javascript,google-chrome,onbeforeunload,Javascript,Google Chrome,Onbeforeunload,我使用ajax更新/进度条为用户提供基于表单的文件上载,一次上载一个。我想给他们一个提醒,如果他们导航离开,任何当前上传将被取消。除了Chrome v.18之外,以下代码实现了这一目标。如果单击Chrome中的后退按钮,文件上载流将立即终止,抛出org.apache.commons.fileupload.FileUploadBase$IOFileUploadException:处理多部分/表单数据请求失败。流从commons.fileupload库意外结束 我找不到关于这个问题的任何具体信息,但
window.onbeforeunload =
function(event) {
if (upload_in_progress) {
var msg = "You are uploading a file." +
"If you leave this page the upload " +
"will be cancelled.\n\nLeave page?";
var event = event || window.event;
if (event) { event.returnValue = msg; }
return msg;
}
};
在Chrome和Safari中,连接到beforeunload事件的函数必须始终返回显示给用户的字符串值消息。单击链接…不会停止上载?否。我得到了这个对话框,可以像预期的那样保持在页面上/离开页面,除非我选择离开页面,否则升级将继续。上面的代码就是这样做的。如果有一个事件,则有一条消息,该消息将按预期显示。问题是,正如上面在Chrome中所述,在向用户显示消息之前,上传流会停止,因此用户的回答与此无关。上面的代码并不总是返回字符串。它是有条件的,但应始终返回字符串。