浏览器标签tab窗口切换时事件状态侦听

浏览器标签tab窗口切换时事件状态侦听

背景

项目中使用到了websocket,用户在浏览器窗口切换或者浏览器最下话后,websocket的状态有可能断开,且没有重试机制,所以想通过用户回到当前页面的时候,系统能够自动刷新,重新连接socket

解决方法

通过添加浏览器的监听事件,判断用户是否离开了当前的页面。

document.addEventListener('visibilitychange', function() {
    var isHidden = document.hidden;
    if (isHidden) {//切离该页面时执行
        alert("浏览器处于最小化状态了");
        document.title = '当焦点不在当前窗口时的网页标题';
    } else {//切换到该页面时执行
        alert("页面处于当前状态了");
        document.title = '再变回来或者做点其他的';
    }
});

具体使用

判断用户重新回到当前页面的时候,进行页面刷新

document.addEventListener('visibilitychange', function() {
    var isHidden = document.hidden;
    if (isHidden) {//切离该页面时执行
        //页面切换时,处理逻辑
    } else {//切换到该页面时执行
        //页面回来时的逻辑处理,此处是进行了刷新
        location.reload(); //刷新页面
        //window.location.reload()
    }
});

document.visibilityState的值为:

hidden(当浏览器最小化、切换tab、电脑锁屏时) visible(用户正在查看当前页面时) prerender(文档加载离屏或者不可见) unloaded(当文档将要被unload时)

 

posted @   joshua317  阅读(353)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示