我正在使用 Javascript 来实现某种即时消息传递。当消息到达时,如果用户没有关注浏览器窗口,我想播放声音,否则没有声音。我见过window.onfocus和window.onblur但这些似乎是事件监听器。相反,我想要一些更简单的东西,它会在顺序代码中返回真或假;以便
if (windowOpen) // user on my window
{
playSound();
}
// do rest of the messaging
有没有这么简单,最好是单行的技术?
我正在使用 Javascript 来实现某种即时消息传递。当消息到达时,如果用户没有关注浏览器窗口,我想播放声音,否则没有声音。我见过window.onfocus和window.onblur但这些似乎是事件监听器。相反,我想要一些更简单的东西,它会在顺序代码中返回真或假;以便
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();
}
}
我认为没有任何单行技术可以解决这个问题。
见: http ://www.thefutureoftheweb.com/blog/detect-browser-window-focus