在点击时区分重新加载事件和关闭窗口事件

时间:2018-04-19 10:49:36

标签: javascript angularjs

有没有办法区分事件 - 重新加载和关闭窗口? 由于 $ window.onbeforeunload 适用于这两种情况,我在两个事件中都没有发现任何差异。

在我的情况下,我必须在不同的事件上调用不同的函数。

所以,请建议任何解决方案或替代方案。

1 个答案:

答案 0 :(得分:0)

我发现Javascript中的hack应该适用于大多数浏览器。

这是如何工作的代码是使用window.opener属性。它正在检查对象中是否存在无效属性。

  • 因此,如果存在父窗口,则返回将为“未定义”。
  • 如果父窗口不存在,将引发一个我们将捕获的异常。此异常将告诉我们父级不再存在,因此我们知道父级已关闭。

以下是代码:

  function detectRefresh(){
     try
     {
       if(window.opener.title == undefined){
          isRefresh = true;
          document.write('Window was refreshed!');
       }
     }
     catch(err)
     {
        isRefresh = false;
        document.write('Window was closed!');
     } 
   }