javascript如何检查浏览器是否获得焦点

javascript如何检查浏览器是否获得焦点,javascript,browser,focus,Javascript,Browser,Focus,我有一个基于Meanjs的工作聊天,我想添加一个新功能,我在其他可用聊天中看到: 特色: 1.当收到消息时,窗口的标题开始在原来的内容和通知消息(如“新消息”)之间切换 2.当浏览器或选项卡收到焦点时,停止正在进行的活动并重置回静态页面标题 第一个简单的方法是设置一个计时器,并在一段时间内更改页面标题,但我不知道如何获得浏览器获得或失去焦点的事件 我可以简单地问一下浏览器的“如何检测焦点”,但我解释了我的目的,希望了解这个特定用例中的最佳实践并了解更多信息 将欢迎并欣赏课程。简单地说,您可以使用

我有一个基于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先生。玩得高兴