如何判断浏览器/标签页是否处于活动状态

ckknight:

可能重复:
有没有一种方法可以检测浏览器窗口当前是否未激活?

我有一个每秒调用一次的函数,仅当当前页面位于前台时才运行,即用户没有最小化浏览器或切换到另一个选项卡。如果用户不看它,它可能没有用,并且可能占用大量CPU,因此我不想只在后台浪费时间。

有人知道如何用JavaScript讲这个吗?

注意:我使用jQuery,因此,如果您的答案使用了jQuery,那就很好了:)。

理查德·西蒙斯(RichardSimões):

您将使用窗口focusblur事件:

var interval_id;
$(window).focus(function() {
    if (!interval_id)
        interval_id = setInterval(hard_work, 1000);
});

$(window).blur(function() {
    clearInterval(interval_id);
    interval_id = 0;
});

要回答“ Double Fire”的评论问题并保持在jQuery易用性之内:

$(window).on("blur focus", function(e) {
    var prevType = $(this).data("prevType");

    if (prevType != e.type) {   //  reduce double fire issues
        switch (e.type) {
            case "blur":
                // do work
                break;
            case "focus":
                // do work
                break;
        }
    }

    $(this).data("prevType", e.type);
})

单击以查看示例代码,显示其正常工作(JSFiddle)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何判断浏览器/标签页是否处于活动状态,以及如何在用户离开时调低音量

有没有办法判断浏览器是否处于活动状态?

标签或窗口处于非活动状态时,浏览器如何暂停/更改Javascript?

如何检查浏览器是否在Crossrider中处于活动状态?

如何使用Javascript在Chrome浏览器中检测标签是否处于焦点状态?

检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]

检查是否使用Android默认浏览器或任何移动浏览器(如果处于活动状态)

检测浏览器选项卡是否处于活动状态或用户已离开

如何在服务器仍处于活动状态的情况下检查浏览器连接?

如何通过保持webDriver处于活动状态来关闭整个浏览器窗口?

如果浏览器选项卡处于活动状态,如何更改 Shopify 标题

如何判断Vue组件是否处于活动状态

是否想在浏览器窗口处于活动状态时每次按下按键时读取按键事件并打印按键?

如何检测浏览器未最小化且相关选项卡未处于活动状态

如何关闭Google Chrome浏览器左侧的标签页?

如何判断用户是否使用Brave作为浏览器?

木偶:浏览器断开后,Chromium实例在后台仍处于活动状态

当Chrome中的标签页处于非活动状态时,如何使setInterval也起作用?

每当我的Chrome扩展程序的标签页处于活动状态时,如何激活该功能

检测浏览器/标签页关闭

异步等待在浏览器中是否真正处于非阻塞状态?

浏览器选项卡处于非活动状态时,如何在REACT应用程序中播放音频?

如何启用CSS位置:在移动浏览器中处于粘滞状态?

使用 Selenium 驱动程序加载页面,关闭/处理它并保持浏览器处于活动状态

如何判断是否使用NSWindow浏览文档版本(版本浏览器UI的右侧)

是否有用于在Google Chrome浏览器中复制标签页的快捷键?

Ubuntu中的Chrome浏览器是否具有“最近的标签页”?

是否可以禁用使用JavaScript在浏览器中打开新标签页或窗口?

如何在Chrome网络浏览器的当前标签页右侧打开新的标签页/链接?