2013-05-03 66 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

相关问题