关闭浏览器页面之前捕获

时间:2015-03-03 02:27:34

标签: javascript

这是我的情景: 用户开始编辑帖子,上传照片,然后关闭浏览器,或跳转到其他页面。

我希望能够删除上传的照片并向用户发出相应的警告。

我知道有一个函数window.onbeforeunload 但我不确定我是否做对了

window.onbeforeunload = askExit;
function askExit(){
        return "Are you sure you want to exit this page?";

}

现在,如何捕捉按钮“离开此页面” 所以我可以开第二个功能来清理会话,照片等?

1 个答案:

答案 0 :(得分:1)

嗯,理论上,you can't

  

beforeunload的主要目的是允许用户选择在更改丢失之前保存更改。

但是,您可以在技术上使用onfocus / onunload一些魔法来执行此操作:

var isFromUnloadDialog = false;

window.addEventListener("beforeunload", function() {
  isFromUnloadDialog = true;
  return "Are you sure you want to exit this page?";
});

window.addEventListener("focus", function() {
  if (isFromUnloadDialog) {
    // User canceled the unload
    isFromUnloadDialog = false;
  }
});

window.addEventListener("unload", function() {
  // User didn't cancel the unload; clean up
});
如果你还没看过它,那么

This也值得一读。