Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查浏览器窗口是否处于活动状态?_Javascript_Browser_Window_Focus - Fatal编程技术网

Javascript 如何检查浏览器窗口是否处于活动状态?

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 有没有这样一种简单的、最

我正在使用Javascript实现某种即时消息传递。当消息到达时,如果用户没有专注于浏览器窗口,我想播放声音,否则就没有声音。我看过关于window.onfocuswindow.onblur的内容,但它们似乎是事件侦听器。相反,我想要一些更简单的东西,它会在顺序代码中返回true或false;所以

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
变量随时了解状态