Skip to content

Instantly share code, notes, and snippets.

@hawkrobe
Created February 8, 2016 20:25
Show Gist options
  • Select an option

  • Save hawkrobe/2c68ce333baa49b446c4 to your computer and use it in GitHub Desktop.

Select an option

Save hawkrobe/2c68ce333baa49b446c4 to your computer and use it in GitHub Desktop.
keep track of whether user has switched tabs...
var visible = "visible";
// Automatically registers whether user has switched tabs...
(function() {
document.hidden = hidden = "hidden";
// Standards:
if (hidden in document) {
document.addEventListener("visibilitychange", onchange);
} else if ((hidden = "mozHidden") in document) {
document.addEventListener("mozvisibilitychange", onchange);
} else if ((hidden = "webkitHidden") in document) {
document.addEventListener("webkitvisibilitychange", onchange);
} else if ((hidden = "msHidden") in document) {
document.addEventListener("msvisibilitychange", onchange);
// IE 9 and lower:
} else if ('onfocusin' in document) {
document.onfocusin = document.onfocusout = onchange;
// All others:
} else {
window.onpageshow = window.onpagehide = window.onfocus = window.onblur = onchange;
}
})();
function onchange (evt) {
var v = 'visible', h = 'hidden',
evtMap = {
focus:v, focusin:v, pageshow:v, blur:h, focusout:h, pagehide:h
};
evt = evt || window.event;
if (evt.type in evtMap) {
document.body.className = evtMap[evt.type];
} else {
document.body.className = evt.target.hidden ? "hidden" : "visible";
}
visible = document.body.className;
game.socket.send("h." + document.body.className);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment