2013-05-03 75 views
0

我正在使用Javascript來實現某種即時消息。當消息到達時,如果用戶沒有關注瀏覽器窗口,並且沒有其他聲音,我想播放聲音。我見過大約window.onfocuswindow.onblur但這些似乎是事件監聽器。相反,我想要一些簡單的東西,它會使我在順序代碼中返回真或假;這樣如何檢查瀏覽器窗口是否處於活動狀態?

if (windowOpen) // user on my window 
{ 
    playSound(); 
} 
// do rest of the messaging 

是否有這樣一個簡單的,最好是單線技術?

回答

3

我不明白你對事件監聽器有什麼要求,或者爲什麼它需要在一行上。似乎聽衆正是你所需要的,不管有多少行。

var focused = true; 

window.onfocus = window.onblur = function(e) { 
    focused = (e || event).type === "focus"; 
} 

function yourMessagingFunc() { 
    if (focused === false) { 
     playSound(); 
    } 
} 
+0

我是新來的Javascript,所以我可能是錯的這一點。但我需要的不是「當窗口模糊/聚焦時做X」。我需要「在做某事時,檢查模糊/焦點並相應地進行X操作」 – paris 2013-05-03 15:02:21

+1

@ user1863231這就是'yourMessagingFunc()'**所做的**。它檢查以查看窗口的狀態。如果它沒有聚焦(不活動),它會運行'playSound();'。 'onfocus'和'onblur'的額外代碼是跟蹤狀態,以便其他代碼可以通過檢查'focused'變量來知道任何點的狀態 – Ian 2013-05-03 15:03:33

相關問題