【问题标题】:Angularjs: capture the refresh event in the browserAngularjs:在浏览器中捕获刷新事件
【发布时间】:2014-05-28 12:38:58
【问题描述】:

在 angularjs 中是否可以处理用户单击浏览器上的刷新按钮? 框架有没有向开发者公开的方法?

谢谢

【问题讨论】:

标签: javascript jquery angularjs


【解决方案1】:

要自行处理重新加载(包括按 F5)并在重新加载甚至取消之前采取措施,请使用“beforeunload”事件。

var windowElement = angular.element($window);
windowElement.on('beforeunload', function (event) {
   //Do Something

   //After this will prevent reload or navigating away.
   event.preventDefault();
});

【讨论】:

    【解决方案2】:

    你可以使用$routeChageStart:

     $rootScope.$on('$routeChangeStart', function () {
                alert('refresh');
            });
    

    【讨论】:

    • 据我所知,这不是 OP 所要求的。每次更改视图时都会触发此事件,而不是在用户刷新时触发。
    • 虽然答案是错误的,但不值得负分
    • 我认为这行不通; beforeunload 很难接受来自 javascript 的行为变化。例如对于 Angular 7,与 canDeactivate 等效的 某种方式 不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2014-12-22
    • 2010-11-04
    • 2018-09-26
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多