Nei moderni browser (anche IE 11), è presente la Page Visibility API che permette di identificare se il tab corrente è attivo (visualizzato) o meno (nascosto).

La proprietà per verificare lo stato di visibilità è document.visibilityState che puo ritornare visible o hidden.

Esiste anche un evento che può notificare il cambio di stato visibilitychange
JavaScript
function onVisibilityChange ()
{
  if (document.visibilityState === "hidden") {
    console.log("Tab nascosto");
  } else {
    console.log("Tab visibile");
  }
}

document.addEventListener('visibilitychange', onVisibilityChange, false);
L'evento viene invocato sia se si cambia tab, sia se si riduce la finestra ad icona.
Non viene invocato se la finestra viene coperta da un altra finestra.
Potrebbe interessarti anche: