Document Visibility

by tomprogramming

JavaScript

var getFirstDefinedValue  = function(){
    var i, arg, max;
    for(i = 0, max = arguments.length; i < max; i++){
        arg = arguments[i];
        if (typeof arg !== 'undefined'){
            break;
        }
    }
    
    return arg;
    
};

//this is a bit dangerous, but jQuery doesnt yet bind to all browser versions of the event
$(document).on("webkitvisibilitychange visibilitychange", function(){
    var state = document.visibilityState || document.webkitVisibilityState;
    var hidden = getFirstDefinedValue(document.hidden, document.webkitHidden, document.mozHidden);
    
    console.log('the document is hidden:', hidden, ';the document is in state:',state);
});