当前位置: 首页 > 面试题库 >

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

阎慈
2023-03-14
问题内容

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

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

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


问题答案:

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


 类似资料:
  • 通常情况下,您使用selenium来自动化测试用例,在测试用例运行完毕后,浏览器关闭。 然而,我尝试使用selenium webdriver编写特定任务的脚本,例如登录到特定页面,但浏览器在登录后应保持打开状态。 我开发了门户,这样,如果我早上开始工作,我就不必登录所有的后端,我只需要登录一次我的门户,从那里我就可以触发我需要的一切。 我这样做是为了登录到typo3后端(片段): 您可以看到,我在

  • 问题内容: socket.io中有一种方法可以在断开连接的事件中创建超时,然后检查用户是否已重新连接? 这个想法是仅在超时后未重新连接用户时才发出数据/将用户状态保存在数据库中 编辑 :@Are Wojciechowski回答之后,我已经完成了多个标签页和F5洪水处理程序 https://gist.github.com/foohey/7696811 问题答案: 有一个。所以你可以做 我明白了 因此

  • 我有一个非常简单的测试应用程序,上面有一个webview组件。我正试图阻止链接在浏览器中打开,但“shouldoverrideurlloading”看起来对我不起作用。 有人能帮我看看哪里有错误吗?

  • 本文向大家介绍在vue中阻止浏览器后退的实例,包括了在vue中阻止浏览器后退的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: vue阻止浏览器后退按钮与js相同,同样没有脱离原生的js 以上这篇在vue中阻止浏览器后退的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 当使用React-Router时,有什么方法可以防止在浏览器的地址栏中显示?那是ReactJS。也就是说,单击链接转到新路由会显示或。取决于路线。

  • 本文向大家介绍JS打开新窗口防止被浏览器阻止的方法,包括了JS打开新窗口防止被浏览器阻止的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法。分享给大家供大家参考。具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题