javascript如何检查浏览器是否获得焦点
我有一个基于Meanjs的工作聊天,我想添加一个新功能,我在其他可用聊天中看到: 特色: 1.当收到消息时,窗口的标题开始在原来的内容和通知消息(如“新消息”)之间切换 2.当浏览器或选项卡收到焦点时,停止正在进行的活动并重置回静态页面标题 第一个简单的方法是设置一个计时器,并在一段时间内更改页面标题,但我不知道如何获得浏览器获得或失去焦点的事件 我可以简单地问一下浏览器的“如何检测焦点”,但我解释了我的目的,希望了解这个特定用例中的最佳实践并了解更多信息javascript如何检查浏览器是否获得焦点,javascript,browser,focus,Javascript,Browser,Focus,我有一个基于Meanjs的工作聊天,我想添加一个新功能,我在其他可用聊天中看到: 特色: 1.当收到消息时,窗口的标题开始在原来的内容和通知消息(如“新消息”)之间切换 2.当浏览器或选项卡收到焦点时,停止正在进行的活动并重置回静态页面标题 第一个简单的方法是设置一个计时器,并在一段时间内更改页面标题,但我不知道如何获得浏览器获得或失去焦点的事件 我可以简单地问一下浏览器的“如何检测焦点”,但我解释了我的目的,希望了解这个特定用例中的最佳实践并了解更多信息 将欢迎并欣赏课程。简单地说,您可以使用
将欢迎并欣赏课程。简单地说,您可以使用本机javascript事件处理程序检查窗口是否处于焦点位置。我们将使用window.onblur检查窗口是否处于焦点位置,并使用window.onfocus检查窗口是否处于焦点位置
window.onblur = function(){
// do some event handler here...in your case, to show new message alert on the title if the user receive new message.
newMessageChecker();
}
window.onfocus = function(){
// invoke another function to bring back your default title and destroy the Interval you have created.
destroyMessageChecker();
}
function newMessageChecker(){
// check if the user have new message. you may use setInterval method
window.messageChecker = setInterval(function(){
// if true, do some stuff like this
document.title = "New Message("+ messageCount +") : " + yourDefaultTitleValue;
}, 3000);
}
function destroyMessageChecker(){
// change your title to default value
document.title = yourDefaultTitleValue;
clearInterval(window.messageChecker);
}
有关窗口事件的更多信息,请查看此链接。如果您更喜欢使用jQuery,请查看此页面查看关于tab focus的问题:非常感谢,对不起,我没有足够的声誉投票支持答案没问题,Dain先生。玩得高兴