如何触发window.onbeforeunload警告,仅当上传正在进行时

how to trigger window.onbeforeunload warning only if upload is in progress

本文关键字:进行时 window 何触发 onbeforeunload 警告      更新时间:2023-09-26

使用以下JavaScript函数上传文件:

function uploadFile(formdata) {
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener("progress", progressHandler, false);
    xhr.addEventListener("load", completeHandler, false);
    xhr.addEventListener("error", errorHandler, false);
    xhr.addEventListener("abort", abortHandler, false);
    xhr.open("POST", "upload.php");
    xhr.send(formdata);
}

如果用户在上传过程中试图重新加载或关闭浏览器窗口,我很难弄清楚如何实现window.onbeforeunload警告消息。

设置一个标志-我将使用window,但您应该使用您的应用程序范围。

window.uploading = false;
window.onbeforeunload = function () {
    if (window.uploading) {
        return 'You are uploading! CHILL OUT!';
    }
};
function uploadFile(formdata) {
    var xhr = new XMLHttpRequest();
    window.uploading = true;
    xhr.upload.addEventListener("progress", progressHandler, false);
    xhr.addEventListener("load", completeHandler, false); // complete handler sets uploading to false
    xhr.addEventListener("error", errorHandler, false);
    xhr.addEventListener("abort", abortHandler, false);
    xhr.open("POST", "upload.php");
    xhr.send(formdata);
}