一尘不染

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

angularjs

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

然后,应用程序(使用某些登录过程)应区别于它已重新加载,因此用户不会丢失其身份验证数据,应用程序应能够从localStorage还原必要的信息。

请提出一些最佳技术来“处理”浏览器重新加载/导航。


阅读 265

收藏
2020-07-04

共1个答案

一尘不染

重新加载后,您所有的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();
});
2020-07-04