Browservisability mit JavaScript ermitteln

Um die unterschiedliche Browsersyntax zu berücksichtigen kann dieser Code helfen:

var vis = (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];
    }
})();

und kann dann wie folgt benutzt werden:

var visible = vis(); // gives current state

vis(aFunction);      // registers a handler for visibility changes

Anwendungsbeispiel:

vis(function(){
  document.title = vis() ? 'Visible' : 'Not visible';
});

Quelle: https://stackoverflow.com/questions/19519535/detect-if-browser-tab-is-active-or-user-has-switched-away/19519701#19519701