javascript - 检测浏览器内的选项卡切换和浏览器的应用程序切换

标签 javascript jquery

我需要知道当用户在特定浏览器中切换选项卡以及当用户切换应用程序时选项卡的可见性状态。(从浏览器切换)

var visibilityState,
    activeTab = (function(){
        var stateKey, eventKey, keys = {
            hidden: "visibilitychange",
            webkitHidden: "webkitvisibilitychange",
            mozHidden: "mozvisibilitychange",
            msHidden: "msvisibilitychange"
        };
        for (stateKey in keys) {
            if (stateKey in document) {
                eventKey = keys[stateKey];
                break;
            }
        }
        return function(c) {
            if (c) document.addEventListener(eventKey, c);
            return !document[stateKey];
        }
    })();
activeTab(function() {
    visibilityState = activeTab();
});

使用

$(window).blur(function(){
    if(!visibilityState){
        console.log("Tab Switch happened ...");
    }
});

最佳答案

您的目标浏览器支持什么?您是否尝试过查看 Page Visibility API ?或者,如果您使用的是 jQuery,则可以执行 $(window).on("blur focus", someCallbackHere) 就像在 answer 中演示的那样.

关于javascript - 检测浏览器内的选项卡切换和浏览器的应用程序切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50445102/

相关文章:

javascript - 一次切换 2 个类?

php - 如何使用 index.php?-url 和 colorbox

javascript - 如何在更新 mongo 文档时使用变量?

javascript - Skrollr - 是否可以使用 Sprite 并改变滚动位置?

jquery - 'this'在ajax函数中代表什么

asp.net - 如何保存搜索,选择最近的搜索,然后使用 jQuery 和/或 asp.net 填充表单,就像 Priceline 所做的那样

javascript - 打开基于ajax响应的jquery-ui对话框

javascript - 错误 "Uncaught SyntaxError: Unexpected end of input"

javascript - Vue 3 : Receiving "r.default is not a constructor" error while using Vue Material

jquery 找到精确的字符串,不多也不少