2009-05-06 12 views
7

マイページは、ウィンドウがバックグラウンドのときにのみ通知音を出す必要があります。フォーカス状態が変化したときに通知するために、window.onfocuswindow.onblurイベントを追跡できます。しかし、ウィンドウがフォーカスされて読み込まれるかどうかは、たとえば、背景のタブで読み込まれる可能性があるため、わかりません。ブラウザのウィンドウがフォーカスされているかどうかを検出するにはどうすればよいですか?

onfocus/onblurイベントを取得する前に、サウンドを再生するかどうかを決定するにはどうすればよいですか?

答えて

2

あなたはそれがぼやけてロードされたと仮定して、どのタイプのイベント(keydown/mousemove)を受信して​​すぐにフォーカスをフォーカスに変更できませんでしたか?

+0

これは良い考えです。それは完璧な解決策ではありませんが、それがうまくいく最良の方法かもしれません。 – Peeja

+2

マウスをぼかしたウィンドウに移動しても 'mousemove'が起動されます。代わりに' mousedown'を使用してください。ここで試してみてください:http://www.quirksmode.org/dom/events/tests/mousemove.html –

0

ページが最初に(フォアグラウンドで)開いているときにonfocusイベントが発生する必要があります。少なくともFF3/IE8です。

最初に音を出すことができます。オンフォーカスがトリガーされたときに音を消し、オンブラックがトリガーされたときに音を戻すことができます。

+0

誰かが新しいタブへの切り替えをして、新しいタブへの切り替えをオフにしても? (私が知りたいので尋ねていないと言っているわけではありません:) – chaos

+0

私は、新しいタブ(背景)で開いたときに、onfocusがトリガーされませんでした。タブに切り替えたら、それが起動しました。 音を鳴らしてみると、うまくいくはずですね。タブがフォアグラウンドで開かれている場合、サウンドはオンになりますが、onfocusイベントはすぐにオフになります。タブがバックグラウンドで開かれている場合、そのタブに切り替えるまでサウンドはそのままです。 –

+0

IE8でも同じように動作するようです。 –

関連する問題