ページがフォーカスされているかどうかを確認するには、document.hasFocus
関数を使用できます。true
ドキュメントがフォーカスされているかどうかを返しますfalse
。
ただし、Opera ではサポートされていないようです。そのため、Opera のサポートが重要な場合は、focus
とblur
のイベントを見てwindow
、ウィンドウがフォーカスされているかどうかを判断できます (ここに例があります)。
「ユーザーにどのように警告するか」というトピックについては、実際に決定するのはあなた次第です。タイトルの先頭に " (x) " を追加して、通常の方法でそれを行うことができます。ここで、 xは新しいメッセージの数です。また、Flash を使用するか、JavaScript Audio API を使用して、ノイズでユーザーに警告することもできます。
var sound = new Audio('sound-file.wav');
sound.play();
ただし、音声フィードバックは厳密に自発的なものにしてください。
さらに凝りたい場合は、Chrome デスクトップ通知をご覧ください。Chrome を実行しているすべてのユーザーは、新しいメッセージが到着するたびに、デスクトップ通知 (Skype または MSN メッセージを受信したときに受け取るのと同じ種類) を受け取ることができます。以下は使用例です。