4

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

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

但问题是我的页面上有来自第三方的 iframe,如果用户点击 iframe,窗口模糊事件会被触发,但用户仍然在我的页面上。我试图通过检查是否document.activeElement是一个 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 时,如何检查站点是否在前台?

4

1 回答 1

3

您应该能够使用Page Visibility API

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

学到更多

例子

于 2012-08-29T20:44:17.463 回答