title: Detect when a browser page window loses focus with Alt-Tab using pure JS or jQuery
body: <p>Is it possible to detect current page is in alt-tab?
  This code works only if a new tab in browser is opened:</p>
  
  <pre><code>(function() {
    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)
        document.body.className = evtMap[evt.type];
      else
        document.body.className = this[hidden] ? "hidden" : "visible";
    //console.log(this[hidden] ? "hidden" : "visible");
    }
  
    // set the initial state (but only if browser supports the Page Visibility API)
    if( document[hidden] !== undefined )
      onchange({type: document[hidden] ? "blur" : "focus"});
  })();
  </code></pre>
  
  <p>But this code does detect neither new window of the browser nor alt-tab into any other programm. Is it possible to detect it? Or in jQuery?</p>
  
  <p><strong>EDIT</strong>
  New page means Ctrl(cmd)+N (new window) hotkey. The code above can not detect this. Alt(cmd)+tab to another program - impossible to detect too.
  The code above can only detect Ctrl(cmd)+T (new tab)</p>
  
  <p><strong>EDIT</strong>
  I want to detect when a user return to my site from another application. That is, if a user closes any tab (e.g., by Ctrl+W) and returns to my site I can detect this action using the script above. But if a user returns to my site from another application (e.g., by Alt+Tab) the script doesn't work because <code>window.onfocus</code> will not be fired! That is,</p>
  
  <pre><code> window.onpageshow =
   window.onpagehide = window.onfocus = window.onblur 
  </code></pre>
  
  <p>doesn't work for Alt+Tab action. Is it more clear?</p>