Skip to content

Instantly share code, notes, and snippets.

@MagnusThor
Created September 2, 2014 11:02
Show Gist options
  • Save MagnusThor/16245ac659e6df1b6668 to your computer and use it in GitHub Desktop.
Save MagnusThor/16245ac659e6df1b6668 to your computer and use it in GitHub Desktop.
DOM VisibilityChange
var Sandvik = Sandvik || { Utils: {} };
Sandvik.Utils.VisibilityChange = (function() {
function ctor(cb) {
var self = this;
this.visibilityState = true;
var visProp = (function() {
var prefixes = ['webkit', 'moz', 'ms', 'o'];
if ('hidden' in document) return 'hidden';
for (var i = 0; i < prefixes.length; i++) {
if ((prefixes[i] + 'Hidden') in document)
return prefixes[i] + 'Hidden';
}
return null;
})();
if (visProp) {
var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';
document.addEventListener(evtname, function(evt) {
self.visibilityState = evt.target.visibilityState;
cb(self.visibilityState, evt);
});
}
}
return ctor;
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment