我们运行文件上传服务。在上传文件时,用户需要留在页面上,因此我们使用window.onbeforeunload:
window.onbeforeunload = function() {
return 'You still have files uploading...';
};
当用户尝试重新加载页面,关闭页面或转到新的URL时,浏览器会警告他,并且他有机会留在页面上。
这很有效,但我们在Chrome中发现了一个奇怪的行为。
当您尝试访问您经常访问的网站的网址时,它不会向用户显示弹出窗口,而只是快速转到请求的页面。在我的情况下,我可以使用reddit.com,facebook.com,但不是dog.com。
我认为它可能与预渲染或Chrome所具有的其他一些优化有关,这使得它忽略onbeforeunload。
您可以转到http://ge.tt进行试用,然后开始上传文件。然后转到其他URL,并选择您经常访问的网站。 Chrome应该(错误地)让你这样做。
有谁知道怎么办? onbeforeunload不是我们应该再使用的了吗?