【问题标题】:Differentiate the reload event and close window event on click区分单击时的重新加载事件和关闭窗口事件
【发布时间】:2018-04-19 10:49:35
【问题描述】:

有什么方法可以区分事件 - 重新加载并关闭窗口? 由于 $window.onbeforeunload 在这两种情况下都有效,我没有发现这两种事件有任何区别。

就我而言,我必须在不同的事件上调用不同的函数。

所以,请提出任何解决方案或替代方案。

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

我发现 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!');
     } 
   }

【讨论】:

    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多