2011-12-29 26 views
6

thể trùng lặp:
test if window has focusBiết khi người dùng nhìn vào trang web của bạn trong trình duyệt vs tab khác/ứng dụng

Một trang web tôi thường xuyên sử dụng có chức năng trò chuyện trực tuyến (một cửa sổ bật lên, rất giống với facebook). Khi trình duyệt của tôi không có trên tab cho trang web này, một cảnh báo sẽ cảnh báo tôi về bất kỳ tin nhắn trò chuyện nào mới được nhận và khi trình duyệt của tôi không có trên tab cho trang web này, âm thanh không xảy ra (theo thiết kế tôi giả định) .

Điều này đạt được như thế nào? Làm thế nào để mã (javascript tôi giả định và do đó thực hiện trên phía khách hàng của tôi) biết khi nào tôi đang/không nhìn vào trang web?

Cảm ơn

+1

lẽ Bạn đang tìm kiếm: [câu trả lời này] (http://stackoverflow.com/a/3479960/416518) – lsuarez

+1

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

+0

"Khi trình duyệt của tôi không có trên tab cho trang web này, một cảnh báo sẽ được cảnh báo tôi nhận được bất kỳ tin nhắn trò chuyện mới nào và khi trình duyệt của tôi không có trên tab cho trang web này, âm thanh không xảy ra (theo thiết kế tôi giả định). " Ông có thể làm rõ? Tuyên bố của bạn về cơ bản lặp lại chính bạn. –

Trả lời

0

Câu trả lời toàn diện dựa trên các nhận xét khác từ trên cao. Vâng, nó chủ yếu là một câu hỏi lặp lại, nhưng nó được yêu cầu độc đáo nên nó sẽ vẫn tồn tại trong những câu hỏi chưa được trả lời mãi mãi nếu ai đó không trả lời. Để những người khác có câu hỏi này tìm câu trả lời này, vui lòng tham khảo các chủ đề được liên kết khác trong phần nhận xét câu hỏi.

<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> 

Mã này sẽ sử dụng các thẻ BGSound IE & opera để chơi một âm thanh nếu người dùng đang sử dụng một trong những trình duyệt, nếu không nó giả định có một iframe trên trang có tên iPlayer và sử dụng một cầu thủ embeded bên thứ 3. Xem nguồn để biết chi tiết.

  1. Focus mã nguồn: Here
  2. Sound Playing Nguồn: Here
Các vấn đề liên quan