Skip to content

Instantly share code, notes, and snippets.

@splitinfinities
Created August 5, 2014 14:52
Show Gist options
  • Save splitinfinities/c4feea3cbafcdd8838c0 to your computer and use it in GitHub Desktop.
Save splitinfinities/c4feea3cbafcdd8838c0 to your computer and use it in GitHub Desktop.
on blur for every place ever
// Taken from line 456 of this: http://williamriley.me/js/vendor/metronome.js
var 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) {
// logic
}
else {
// logic
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment