3

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

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 ...");
    }
});
4

1 回答 1

0

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

于 2018-05-21T09:00:47.580 回答