js 判断 是否在当前页面 当前页面是否在前端

本文介绍了两种监测网页是否处于活动状态的方法:一是利用visibilitychange事件,根据document.visibilityState属性判断;二是结合使用onblur和onfocus事件,通过设置定时器在页面活跃时输出递增数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.使用visibilitychange

浏览器标签页被隐藏或显示的时候会触发visibilitychange事件.

document.addEventListener("visibilitychange", function() {
    console.log(document.visibilityState);
    if(document.visibilityState == "hidden") {
        console.log('隐藏');
    } else if (document.visibilityState == "visible") {
        console.log('显示')
    }
});

 

2.使用onblur 和 onfocus

通过获取失去焦点判断页面是否在最前端

var count = 1;
var interval_output = null;
     
function output_number() {
    document.body.innerHTML += (count + " ");
    count++;
}
     
// window 失去焦点,停止输出
window.onblur = function() {
    clearInterval(interval_output);
};
     
// window 每次获得焦点
window.onfocus = function() {
    // 每 1 秒在页面输出一个数
    interval_output = setInterval(function() {
        output_number();
    }, 1000);
}

 

参考地址: https://zhidao.baidu.com/question/541794991.html

https://developer.mozilla.org/zh-CN/docs/Web/Events/visibilitychange

转载于:https://www.cnblogs.com/ooo0/p/8378729.html

### 判断代码是否运行在当前活动页面 可以通过监听浏览器窗口的 `focus` 和 `blur` 事件来检测代码是否正在活动标签页上运行。当用户切换到其他选项卡或小化浏览器时,会触发 `blur` 事件;而返回到该选项卡时,则会触发 `focus` 事件。 以下是实现此功能的一个简单方法: #### 使用 `document.visibilityState` 现代浏览器支持 `Page Visibility API`,可以用来检测网页是否处于可见状态。通过检查 `document.hidden` 属性或者订阅 `visibilitychange` 事件,能够知道页面何时被隐藏或重新显示[^1]。 ```javascript // 检测页面是否处于激活状态 function isPageActive() { return !document.hidden; } // 当页面可见性发生变化时执行回调函数 document.addEventListener('visibilitychange', function () { if (!document.hidden) { console.log("页面现在是活跃的"); } else { console.log("页面不再活跃"); } }); ``` #### 结合 `focus` 和 `blur` 事件 对于不完全支持 Page Visibility API 的旧版浏览器,还可以依赖于传统的 `focus` 和 `blur` 事件作为备选方案[^2]。 ```javascript window.addEventListener('focus', function () { console.log("窗口已获得焦点"); }); window.addEventListener('blur', function () { console.log("窗口失去焦点"); }); ``` 以上两种方式都可以有效地帮助开发者理解用户的交互行为并据此调整应用逻辑,比如暂停视频播放、停止动画效果等操作以节省资源消耗。 ### 工具辅助分析 如果希望进一步优化性能表现以及捕获更多潜在问题点,可以考虑利用像 JetBrains ReSharper 这样的开发工具来进行静态代码分析。它提供了超过两千种针对不同编程语言(包括但不限于 C#、VB.NET 及前端技术栈中的 JavaScript/TypeScript)的有效规则集用于发现可能存在的编译期错误或是运行时期隐患,并给出改进建议[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值