微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 有没有办法检测该窗口当前在IE8中活动?

有没有办法检测窗口当前是活动的(正在显示在活动标签/窗口)在IE8?

我知道有像onfocusin / onfocus这样的事件 – 但是这不是一个完美的解决方案,因为窗口还必须获得焦点来触发事件 – 所以当用户只需切换选项卡而不触摸窗口本身就不行.

我相信这样的普通用例必须有一些简单,优雅的解决方案.

解决方法

我写了一个jQuery插件,这样做: http://mths.be/visibility它提供了一个非常简单的API,允许您在页面的可见性状态更改时执行回调.

它通过使用支持the Page Visibility API,并在旧版浏览器中回归到旧的焦点和模糊.

演示:http://mathiasbynens.be/demo/jquery-visibility

这个插件只需提供两个自定义事件即可使用:显示和隐藏.当页面可见性状态更改时,相应的事件将被触发.

您可以分别使用它们:

$(document).on('show',function() {
  // the page gained visibility
});

…和…

$(document).on('hide',function() {
  // the page was hidden
});

由于大部分时间您都需要两个事件,您最好的选择是使用活动地图.这样,您可以一次绑定两个事件处理程序:

$(document).on({
  'show': function() {
    console.log('The page gained visibility; the `show` event was triggered.');
  },'hide': function() {
    console.log('The page lost visibility; the `hide` event was triggered.');
  }
});

插件将检测浏览器中是否支持页面可见性API,并在$.support.pageVisibility中将此信息作为布尔值(true / false)公开:

if ($.support.pageVisibility) {
  // Page Visibility is natively supported in this browser
}

原文地址:https://www.jb51.cc/js/152546.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐