Javascript 如何检查浏览器窗口是否处于活动状态?
我正在使用Javascript实现某种即时消息传递。当消息到达时,如果用户没有专注于浏览器窗口,我想播放声音,否则就没有声音。我看过关于window.onfocus和window.onblur的内容,但它们似乎是事件侦听器。相反,我想要一些更简单的东西,它会在顺序代码中返回true或false;所以Javascript 如何检查浏览器窗口是否处于活动状态?,javascript,browser,window,focus,Javascript,Browser,Window,Focus,我正在使用Javascript实现某种即时消息传递。当消息到达时,如果用户没有专注于浏览器窗口,我想播放声音,否则就没有声音。我看过关于window.onfocus和window.onblur的内容,但它们似乎是事件侦听器。相反,我想要一些更简单的东西,它会在顺序代码中返回true或false;所以 if (windowOpen) // user on my window { playSound(); } // do rest of the messaging 有没有这样一种简单的、最
if (windowOpen) // user on my window
{
playSound();
}
// do rest of the messaging
有没有这样一种简单的、最好是单行线的技术?我不明白您对事件侦听器有什么不满,或者为什么它需要在单行线上。似乎听众正是你所需要的,不管有多少行
var focused = true;
window.onfocus = window.onblur = function(e) {
focused = (e || event).type === "focus";
}
function yourMessagingFunc() {
if (focused === false) {
playSound();
}
}
我不明白你对事件监听器有什么不满,或者为什么它需要在一行上。似乎听众正是你所需要的,不管有多少行
var focused = true;
window.onfocus = window.onblur = function(e) {
focused = (e || event).type === "focus";
}
function yourMessagingFunc() {
if (focused === false) {
playSound();
}
}
我认为这方面没有任何单线技术 见:
我认为这方面没有任何单线技术 见:
我是Javascript新手,所以我可能在这方面错了。但我需要的不是“当窗口变模糊/聚焦时执行X”。我需要“在做某事时,检查是否模糊/聚焦并相应地执行X”@user1863231这就是
yourMessagingFunc()
所做的。它检查窗口的状态。如果未聚焦(非活动),则运行playSound()代码>。onfocus
和onblur
的额外代码是跟踪状态,以便其他代码可以通过检查focused
变量随时了解状态。我是Javascript新手,所以我可能在这一点上错了。但我需要的不是“当窗口变模糊/聚焦时执行X”。我需要“在做某事时,检查是否模糊/聚焦并相应地执行X”@user1863231这就是yourMessagingFunc()
所做的。它检查窗口的状态。如果未聚焦(非活动),则运行playSound()代码>。onfocus
和onblur
的额外代码是跟踪状态,以便其他代码可以通过检查focused
变量随时了解状态