是否有可靠的方法来确定浏览器选项卡或窗口是否处于非活动状态或未处于焦点状态?

2023-11-22

我有一个 javascript 计时器,它不断发出 XMLHTTP 请求(每 10 秒一次)。我希望能够在窗口或选项卡失去焦点时暂停计时器。

我完全了解onFocus and onBlur上的事件window对象,但它们不能在所有浏览器上可靠地触发。例如,在 Safari 中,选项卡不会触发事件.

下面的简单代码提取了我正在寻找的功能:

<html>
  <head>
    <title>Testing</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>
  </head>
  <body>
    <div id="console"></div>
    <script type="text/javascript">
      window.onfocus = function(event) {
        $('console').insert('Window gained focus<br />');
      }

      window.onblur = function(event) {
        $('console').insert('Window lost focus<br />');
      }
    </script>
  </body>
</html>

是否有人拥有一种可以在所有流行浏览器上运行的技术来确定浏览器窗口或选项卡何时失去/获得焦点?


上面的代码运行良好Safari v3.0.4(WebKit 530+),该错误似乎已得到解决。我已经签入了Google Chrome v3.0.195.27尽管它有较新版本的 WebKit,但它也有相同的 Safari 错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有可靠的方法来确定浏览器选项卡或窗口是否处于非活动状态或未处于焦点状态? 的相关文章

随机推荐