如何在javascript中检测浏览器选项卡是不是关闭或浏览器窗口
Posted
技术标签:
【中文标题】如何在javascript中检测浏览器选项卡是不是关闭或浏览器窗口【英文标题】:How to detect whether browser tab closed or browser window in javascript如何在javascript中检测浏览器选项卡是否关闭或浏览器窗口 【发布时间】:2017-12-17 03:36:06 【问题描述】:我有一个将用户数据存储在浏览器本地存储中的应用程序。因此,用户甚至可以跨浏览器选项卡和窗口获取这些数据。但我想做的是在用户关闭浏览器窗口时清除 localStorage。
我使用beforeunload
函数来实现这一点,但它也会在标签关闭时触发。
所以,如果有什么方法可以检测浏览器标签是否关闭或浏览器窗口,请帮助我。
PS:我不能使用 sessionStorage,因为它会在浏览器选项卡关闭时销毁。
【问题讨论】:
AFAIK 并非没有游戏;搜索网络,SO 将提供多种想法供您探索。 【参考方案1】:在浏览器中使用会话存储。 在这里,您不想捕获浏览器选项卡关闭事件。会话存储数据在打开的选项卡的会话中持续存在
if (sessionStorage.clickcount)
sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
else
sessionStorage.clickcount = 1;
document.getElementById("result").innerhtml = "You have clicked the button " +
sessionStorage.clickcount + " time(s) in this session.";
我从Here获取这些示例代码
仅在浏览器关闭时清除
localStorage.removeItem(key);
希望对你有帮助
【讨论】:
我想在浏览器窗口关闭而不是标签关闭时清除数据。所以,如果我使用 sessionStorage,那么它会在选项卡关闭时清除,这也是我不想做的。 但在您的问题中您提到“浏览器选项卡是关闭还是浏览器窗口”,因此我发布了该答案。我将编辑我的答案。请稍候 抱歉有误传。我只是想检测它是否是用户关闭的浏览器选项卡或浏览器窗口。如果是浏览器窗口,则清除本地存储,否则保留它。所以我没有为那个决策点选项卡或窗口找到方法。谢谢以上是关于如何在javascript中检测浏览器选项卡是不是关闭或浏览器窗口的主要内容,如果未能解决你的问题,请参考以下文章
在 Mobile Safari 中通过 JavaScript 检测关闭浏览器选项卡?
如何知道浏览器选项卡是不是已经使用 Javascript 打开?