我需要处理浏览器上的事件,例如跨浏览器上的返回,刷新和关闭。问题是我的客户希望为每个事件使用不同的逻辑。对于后退按钮,此解决方案非常好:
但是现在很难区分刷新和关闭,我发现的所有解决方案都是关于使用“ beforeunload”事件的:
要通过F5刷新,我可以在键盘上捕获事件,但是当用户按下浏览器上的刷新按钮时,我不能。如果我使用“ beforeunload”,则关闭浏览器事件也是如此。
我还找到了一种解决方法:
但不幸的是,我想做的是在页面卸载之前显示消息(在关闭浏览器时显示,而在刷新时显示)
有谁知道解决方案(跨浏览器)
谢谢
您可能要使用Cookies / window.sessionStorage。
您可以设置一个没有明确截止日期的cookie,以便它仅适用于当前会话(在用户关闭浏览器窗口之前有效)。
您还可以使用sessionStorage对象,它仅存储一个会话的数据。当用户关闭特定的浏览器选项卡时,数据将被删除。
您可以按照以下方法进行操作:
1.在用户首次访问页面document.cookie = "userloggedin=true";
或设置页面时创建一个cookiesessionStorage.userLoggedIn = true;
2.Cookie将在刷新/关闭并重新打开选项卡后可用,如果不存在cookie,则表示用户关闭了窗口并重新打开了它。
同样,用户关闭浏览器选项卡后,sessionStorage数据将被删除
希望这可以帮助 !
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句