我想通过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,我怎么能检查网站是否在前台呢?
答案 0 :(得分:1)
您应该可以使用Page Visibility API。
此规范为网站开发人员定义了一种方法 以编程方式确定页面的当前可见性状态 为了开发功能和CPU效率高的Web应用程序。