首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查页面的页面可见性和页面焦点

检查页面的页面可见性和页面焦点
EN

Stack Overflow用户
提问于 2018-08-15 09:42:10
回答 1查看 43关注 0票数 1

我想要确定当用户在页面上时。

因此,当用户单击另一个窗口(失去焦点)或更改选项卡时,我应该停止在我的页面上播放视频。

问题是试图同时做这两件事。

例如,通过这个JS插件(JQuery Visbility),我能够检查我的页面的选项卡/窗口是否打开。

它是如何做到这一点的:

代码语言:javascript
复制
$(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.');
          }
        });

但是它不能检测页面是否有焦点。例如,页面可能是打开的,但我可能会单独打开另一个窗口,并将焦点保持在那里。

下面的代码(摘自here)负责这一点:

代码语言:javascript
复制
function check()
{
    if(document.hasFocus() == lastFocusStatus) return;

    lastFocusStatus = !lastFocusStatus;
    statusEl.innerText = lastFocusStatus ? 'with' : 'without';
}

window.statusEl = document.getElementById('status');
window.lastFocusStatus = document.hasFocus();

check();
setInterval(check, 200);

现在,我正试图同时做这两件事。有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 09:47:20

您可以为windowfocusblur事件添加事件侦听器。

代码语言:javascript
复制
var hasFocus = true;
$(window).focus(function(){
   hasFocus = true;
});
$(window).blur(function(){
   hasFocus = false;
});
//check the hasFocus variable to see if the window has focus
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51851837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档