Ответ 1
Теперь мы можем использовать API видимости.
Чтобы справиться с различными синтаксисами, специфичными для браузера, я сделал этот небольшой код:
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];
}
})();
Использование:
var visible = vis(); // gives current state
vis(aFunction); // registers a handler for visibility changes
Пример:
vis(function(){
document.title = vis() ? 'Visible' : 'Not visible';
});