Javascript 防止用户在上载文件时离开页面

Javascript 防止用户在上载文件时离开页面,javascript,file-upload,navigation,Javascript,File Upload,Navigation,我想防止用户在文件上载到我的服务器时离开我的站点。因此,我可以使用此javascript向用户发送警报消息 window.onbeforeunload = function() { return "Your files are not completely uploaded..."; } 我遇到的问题是,在文件上传完成后,我不想阻止用户导航。因此,本质上我希望只有当用户在上传文件时试图离开站点时,才会弹出警报消息。当文件完全上传时,我可以console.log(“文件上传完成

我想防止用户在文件上载到我的服务器时离开我的站点。因此,我可以使用此javascript向用户发送警报消息

 window.onbeforeunload = function() {
       return "Your files are not completely uploaded...";
 }

我遇到的问题是,在文件上传完成后,我不想阻止用户导航。因此,本质上我希望只有当用户在上传文件时试图离开站点时,才会弹出警报消息。当文件完全上传时,我可以console.log(“文件上传完成”),因此我知道应该在哪里停止此事件,但我不确定代码应该是什么样子。非常感谢您的帮助

只需在卸载前设置一个标志并将其签入,然后在上载时将其设置为true,在完成时将其设置为false

 window.onbeforeunload = function() {
       if (prevent_leave) {
           return "Your files are not completely uploaded...";
       }
 }

您可以使用jQuery表单插件进行检查。


它提供您获取上传文件的百分比,通过检查它(是否已完成100%),您可以向用户显示一条警告消息。

我已将此javascript放在用户首次上传文件的函数中

window.onbeforeunload = function() {
       var prevent_leave = true;
       if (prevent_leave) {
           return "Your files are not completely uploaded...";
       }
 }
然后我在文件完成后放置了这个javascript

 window.onbeforeunload = function() {
       var prevent_leave = false;
       if (prevent_leave) {
           return "Your files are not completely uploaded...";
       }
 }

这也和我预期的一样。谢谢@jcubic

window.onbeforeunload=null应该可以做到这一点。另外请注意,onbeforeunload处理程序返回的消息不会在所有浏览器中显示。为什么要声明这些变量?上面的if语句将始终导致true,下面的if语句始终导致false。