Page Visibility APIというものを使うと、タブが表示・非表示になった際にイベント発火できます。
対応ブラウザはこちら
http://caniuse.com/#feat=pagevisibility
もう大体大丈夫そうですね
Javascriptでこんな感じで書くといいらしいです。
document.addEventListener('webkitvisibilitychange', function(){
if ( document.webkitHidden ) {
// 非表示状態になった時の動作
} else {
// 表示状態になった時の動作
}
}, false);
webkitvisibilitychange
の部分はプリフェックスが不要なブラウザの場合は
visibilitychange
でいいようですが、こちらに対応しているブラウザについては追って調査します。
どんな時に使うの?
タブを開いている際にだけ動画を再生するデモ(PC)
http://www.samdutton.com/pageVisibility/
別タブにすると一時停止して、戻ると再生が始まるのがわかると思います。