页面可见性API - 检查浏览器是否在后台?

时间:2015-07-26 13:23:50

标签: javascript html5 browser

根据http://www.w3.org/TR/page-visibility/

  

获取时,如果顶级浏览上下文(浏览器的视口中的根窗口)[HTML5]包含的文档根本不可见,则隐藏属性必须返回true。如果顶级浏览上下文包含的文档在至少一个屏幕上至少部分可见,则该属性必须返回false。

但是,使用以下脚本:

setInterval(function() {console.log(document.hidden);}, 1000)

当浏览器在后台运行时,它会一直打印false,即根本不可见。如果我切换到不同的选项卡,或者最小化浏览器,它会打印true

1 个答案:

答案 0 :(得分:1)

仅当API完全隐藏时,PageVisibility API才会返回true。如果您的窗口在后台,但即使部分可见,也会返回false。

尝试将其放在后台,使其小于另一个窗口,然后将该窗口置于顶部。它现在返回true。

你可能需要像document.hasFocus这样的东西(或某种组合)。