File size: 1,723 Bytes
f5b0947 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | // Add Page Visibility API support to old browsers by focus/blur hack.
//
// Include this script _before_ Visibility.js.
//
// Note, that this hack doesn’t correctly emulate Page Visibility API:
// when user change focus from browser to another window (browser and your
// page may stay visible), this hack will decide, that you page is hidden.
//
// For Firefox 5–9 it will be better to use MozVisibility hack without
// this issue. See <https://github.com/private-face/mozvisibility>.
;(function (document) {
if ( document.visibilityState || document.webkitVisibilityState ) {
return;
}
document.hidden = false;
document.visibilityState = 'visible';
var event = null
var i = 0
var fireEvent = function () {
if( document.createEvent ) {
if ( !event ) {
event = document.createEvent('HTMLEvents');
event.initEvent('visibilitychange', true, true);
}
document.dispatchEvent(event);
} else {
if ( typeof(Visibility) == 'object' ) {
Visibility._change.call(Visibility, { });
}
}
}
var onFocus = function () {
document.hidden = false;
document.visibilityState = 'visible';
fireEvent();
};
var onBlur = function () {
document.hidden = true;
document.visibilityState = 'hidden';
fireEvent();
}
if ( document.addEventListener ) {
window.addEventListener('focus', onFocus, true);
window.addEventListener('blur', onBlur, true);
} else {
document.attachEvent('onfocusin', onFocus);
document.attachEvent('onfocusout', onBlur);
}
})(document);
|