确认页面重新加载后执行清理任务

Execute cleanup tasks after page reloading is confirmed

据我们所知,

window.onbeforeunload=function(){
      return "are you sure?";
}

显示本机确认对话框。

如果我们按下 "Reload this Page" 按钮,页面将被刷新或重定向到其他地方。假设,当用户点击 "Reload this Page" 按钮时,我们需要执行一些清理任务。但正如代码所示,确认对话框是由于 return 语句而出现的。我们实际上不能在函数的 return 语句之后执行任何代码。那么,即使在 return 之后,我们如何才能真正执行更多任务呢?在确认之前做清理任务对我来说没有意义。

为什么不使用 window.onunload

window.onbeforeunload=function(){
    return "are you sure?";
}

window.onunload=function(){
    console.log("doing something");
}

http://jsfiddle.net/8b9wyjas/