Javascript 在所有浏览器的win和mac上,当页面失去焦点并最小化时,停止自动刷新

Javascript 在所有浏览器的win和mac上,当页面失去焦点并最小化时,停止自动刷新,javascript,refresh,Javascript,Refresh,在以下情况下,我希望停止自动刷新页面: 它失去了焦点 浏览器被最小化 我可以先做,但特别是在mac电脑上,我无法找到方法 任何帮助都将不胜感激。不确定您尝试了什么,但如果您想查找浏览器窗口的非活动状态,您可以使用允许我们检测用户何时隐藏页面的 注意:(来自w3.org) 本规范定义了一种方法,供站点开发人员使用 以编程方式确定中页面的当前可见性状态 为了开发节能高效的web应用程序 您必须注册visibilitychange事件,示例代码如下所示: <!DOCTYPE html> &

在以下情况下,我希望停止自动刷新页面:

  • 它失去了焦点
  • 浏览器被最小化
  • 我可以先做,但特别是在mac电脑上,我无法找到方法


    任何帮助都将不胜感激。

    不确定您尝试了什么,但如果您想查找浏览器窗口的非活动状态,您可以使用允许我们检测用户何时隐藏页面的

    注意:(来自w3.org)

    本规范定义了一种方法,供站点开发人员使用 以编程方式确定中页面的当前可见性状态 为了开发节能高效的web应用程序

    您必须注册
    visibilitychange
    事件,示例代码如下所示:

    <!DOCTYPE html>
    <html>
     <head>
      <script>
       var timer = 0;
       var PERIOD_VISIBLE = 1000;
       var PERIOD_NOT_VISIBLE = 60000;
    
       function onLoad() {
           timer = setInterval(checkEmail, (document.hidden) ? PERIOD_NOT_VISIBLE : PERIOD_VISIBLE);
           if(document.addEventListener) document.addEventListener("visibilitychange", visibilityChanged);
       }
    
       function visibilityChanged() {
           clearTimeout(timer);
           timer = setInterval(checkEmail, (document.hidden) ? PERIOD_NOT_VISIBLE : PERIOD_VISIBLE);
       }
    
       function checkEmail() { 
           // Check server for new messages
       }
    
      </script>
     </head>
     <body onload="onLoad()">
     </body>
    </html>
    
    
    var定时器=0;
    var周期_可视=1000;
    var期间不可见=60000;
    函数onLoad(){
    计时器=设置间隔(检查电子邮件,(文档.隐藏)?期间\u不可见:期间\u可见);
    if(document.addEventListener)document.addEventListener(“visibilitychange”,visibilityChanged);
    }
    函数visibilityChanged(){
    清除超时(计时器);
    计时器=设置间隔(检查电子邮件,(文档.隐藏)?期间\u不可见:期间\u可见);
    }
    函数checkEmail(){
    //检查服务器是否有新消息
    }
    
    检查已回答的堆栈溢出问题,以供参考:


    页面自动刷新是什么意思?我编写了一个函数,每1分钟调用一次,我想确保该函数仅在页面处于焦点时进行ajax调用