2011-12-29 5 views
6

可能性の重複:
test if window has focus/アプリケーション

私は頻繁に使用するサイトはオンラインチャット機能を持っている(Aポップアップウィンドウ、facebookに非常に似ています)。このサイトのタブにブラウザがないと、新しいチャットメッセージが届いたことを知らせるアラートが鳴り、ブラウザがこのサイトのタブにないときは、サウンドは発生しません(私は想定しています) 。

これはどのように達成されましたか?私がサイトを見ていない/見ていないときのコード(javascriptは私が想定しているのでクライアント側で実行する)はどのようにして知ることができますか?

ありがとうございました

+1

:[この回答](http://stackoverflow.com/a/3479960/416518) – lsuarez

+1

参照:http://stackoverflow.com/questions/1760250/how-to-tell-if-browser-tab-is-active –

+0

"私のブラウザがこのサイトのタブにないとき、警告するために警告が鳴ります新しいチャットメッセージが届きました。私のブラウザがこのサイトのタブにないときは、音は発生しません(私が想定している通り)。明確にしていただけますか?あなたの声明は本質的にあなた自身を繰り返す –

答えて

0

上記の他のコメントに基づく総合的な回答です。はい、それは主に繰り返しの質問ですが、誰かが答えなかったら、答えられていない質問のボールトに永遠に残るようにうまくいきました。この答えを見つけるこの質問の他の人には、質問コメントの他のリンクされたトピックを参照してください。

<BGSOUND id="BGSOUND_ID" LOOP=1 SRC="jsilence.mid"> 

<script type="text/javascript" language="JavaScript"> 

    function onBlur() { 
     document.body.className = 'blurred'; 
    }; 
    function onFocus(){ 
     document.body.className = 'focused'; 
    }; 

    if (/*@[email protected]*/false) { // check for Internet Explorer 
     document.onfocusin = onFocus; 
     document.onfocusout = onBlur; 
    } 
    else { 
     window.onfocus = onFocus; 
     window.onblur = onBlur; 
    } 

    function playSound(audioURL) 
    { 
     if (document.body.className == 'blurred') 
     { 
      if (document.all) 
      { 
       document.all['BGSOUND_ID'].src=audioURL; 
      } 
      else 
      { 
       self.iplayer.location.replace('jsplayer.htm?'+audioURL); 
      } 

      setTimeout("stopSound();", 500); 
     } 
    } 

    function stopSound() 
    { 
     if (document.all) 
     { 
      document.all['BGSOUND_ID'].src='jsilence.mid'; 
     } 
     else 
     { 
      self.iplayer.location.replace('jsplayer.htm?stop'); 
     } 
    } 

    function NewMessage(message) 
    { 
     ShowMessage(message); 
     playSound('ding.mid'); 
    } 

</script> 

このコードでは、それ以外の場合は、iPlayerの名前のページ上のiframeがあると仮定し、埋め込まサードパーティのプレーヤーを使用して、ユーザーはこれらのブラウザのいずれかを使用している場合は、サウンドを再生するにはIE &オペラのBGSOUNDタグを使用します。詳細については、ソースを参照してください。

  1. フォーカスコードソース:Here
  2. サウンド遊ぶ出典:おそらく探しているHere
関連する問題