如何在javascript中检测浏览器选项卡是否关闭或浏览器窗口

时间:2017-07-12 15:42:05

标签: javascript reactjs

我有一个应用程序,用于将用户数据存储在浏览器的localStorage中。因此,用户甚至可以跨浏览器选项卡和窗口获取这些数据。但我想要做的是在用户关闭浏览器窗口时清除localStorage。

我使用beforeunload函数来实现此功能,但它也会在tab关闭时触发。

所以,如果有任何方法可以检测浏览器标签是否关闭或浏览器窗口,请帮助我。

PS:我无法使用sessionStorage,因为它会在关闭浏览器标签时销毁。

1 个答案:

答案 0 :(得分: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);

希望这会对你有所帮助