如何区分刷新(通过F5 /刷新按钮)和关闭浏览器?

鲍伯叔叔

我需要处理浏览器上的事件,例如跨浏览器上的返回,刷新和关闭。问题是我的客户希望为每个事件使用不同的逻辑。对于后退按钮,此解决方案非常好:

但是现在很难区分刷新和关闭,我发现的所有解决方案都是关于使用“ beforeunload”事件的:

要通过F5刷新,我可以在键盘上捕获事件,但是当用户按下浏览器上的刷新按钮时,我不能。如果我使用“ beforeunload”,则关闭浏览器事件也是如此。

我还找到了一种解决方法:

但不幸的是,我想做的是在页面卸载之前显示消息(在关闭浏览器时显示,而在刷新时显示)

有谁知道解决方案(跨浏览器)

谢谢

安奇

您可能要使用Cookies / window.sessionStorage。

您可以设置一个没有明确截止日期的cookie,以便它仅适用于当前会话(在用户关闭浏览器窗口之前有效)。
您还可以使用sessionStorage对象,它仅存储一个会话的数据。当用户关闭特定的浏览器选项卡时,数据将被删除。

您可以按照以下方法进行操作:
1.在用户首次访问页面document.cookie = "userloggedin=true";或设置页面时创建一个cookiesessionStorage.userLoggedIn = true;

2.Cookie将在刷新/关闭并重新打开选项卡后可用,如果不存在cookie,则表示用户关闭了窗口并重新打开了它。
同样,用户关闭浏览器选项卡后,sessionStorage数据将被删除

希望这可以帮助 !

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

浏览器的“ F5”和“ Ctrl + F5”刷新会产生什么请求?

使用JavaScript禁用F5和浏览器刷新

如何在JavaScript或jquery中跟踪浏览器刷新/返回/标签关闭和浏览器关闭事件

如何通过页面刷新(F5)而不是按下按钮来识别回发?

Google Chrome浏览器中的F5刷新和Shift + F5有什么区别?

区分单击X关闭浏览器和jquery / javascript中的后退或上一个浏览器按钮

区分F5或打开浏览器

单击浏览器刷新按钮时的Ajax调用

ReactJS浏览器的“后退”按钮刷新相同的组件

JqueryMobile(SPA)禁用浏览器后退按钮并刷新?

反应| 如何检测页面刷新(F5)

发生错误时,按F5键或在MVC5的浏览器中刷新图标后如何获取新页面?

跟踪浏览器的刷新

使用 gulp 和浏览器同步强制刷新

如何使用浏览器后退按钮关闭叠加层?

Javascript或angularjs推迟刷新之间的浏览器关闭或选项卡关闭

如何单独检测浏览器刷新

如何使浏览器自动刷新?

当用户关闭/刷新浏览器时,如何向后端发送请求?

如果刷新或关闭或新选项卡,如何检测浏览器

实施JWT存储以允许浏览器刷新但在选项卡/浏览器关闭时清除

手动刷新页面时如何取消浏览器关闭/刷新确认模式?

CRM 2013:刷新表单或通过浏览器的后退按钮向后导航时的奇怪行为

通过意图在Android浏览器中打开和关闭浏览器标签?

Flask 应用程序,按钮刷新浏览器。如何预防?

使用浏览器的“后退按钮”时,如何刷新查询集?

如何处理Angular中的浏览器选项卡关闭事件?仅关闭,不刷新

浏览器刷新时关闭页面动画/单击内部菜单链接

浏览器关闭事件而非页面刷新/重新加载事件