检查站点是否在前台

时间:2012-08-29 20:10:25

标签: javascript jquery foreground

我想通过JavaScript检查我的网站是否在前台。但是在阅读所有内容之前不要回答,因为你会直接对我说我应该做this

$(window)
    .focus(function() {
        console.log("focus");
    })
    .blur(function() {
        console.log("blur");
    });​

但问题是我的页面上有来自第三方的iframe,如果用户点击iframe,则会触发窗口模糊事件,但用户仍然在我的页面上。我尝试通过检查if document.activeElement is an iframe on blur

来解决此问题
$(window)
    .focus(function() {
        console.log("focus");
    })
    .blur(function() {
        console.log("blur");
        if (document.activeElement.tagName.toLowerCase() == "iframe") {
            console.log("still focus");
        }
    });​

这里的问题是,当用户先点击iframe然后再点击另一个应用程序时,我无法再检查页面是否不在前台。

那么如果网站中有iframe,我怎么能检查网站是否在前台呢?

1 个答案:

答案 0 :(得分:1)

您应该可以使用Page Visibility API

  

此规范为网站开发人员定义了一种方法   以编程方式确定页面的当前可见性状态   为了开发功能和CPU效率高的Web应用程序。

了解更多

示例