如何处理/阻止浏览器导航或在angularjs中重新加载?

Ask*_*mov 18 javascript angularjs

当用户导航离开或重新加载页面时,我想在我的角度应用程序中检测到.

应用程序(使用一些登录过程)应该区分它被重新加载,因此用户不会丢失他的身份验证数据,应用程序应该能够从localStorage恢复必要的信息.

请提供一些"处理"浏览器重新加载/导航的最佳技巧.

Ben*_*lde 21

所有的javascript和内存变量在重新加载时都会消失.在js中,您知道第一次再次运行代码时页面已重新加载.

要处理重新加载本身(包括按F5)并在重新加载甚至取消之前采取行动,请使用'beforeunload'事件.

var windowElement = angular.element($window);
windowElement.on('beforeunload', function (event) {
    // do whatever you want in here before the page unloads.        

    // the following line of code will prevent reload or navigating away.
    event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

  • `windowElement.on('beforeunload,...)`对我来说不起作用.是`windowElement.on('onbeforeunload,...)`而不是按预期工作. (3认同)
  • @Sebastialonso你的模块里面的.run()函数.模块文档 - https://docs.angularjs.org/api/ng/type/angular.Module (2认同)