我希望用JavaScript检查我的网站是否在前台。但在阅读完整段内容之前,请不要回答,因为你可能会直接告诉我应该做这个:
$(window)
.focus(function() {
console.log("focus");
})
.blur(function() {
console.log("blur");
});
但问题是我在我的页面上有一个来自第三方的 iframe。如果用户点击 iframe,窗口模糊事件会被触发,但是实际上用户仍然在我的页面上。我尝试修复这个问题,通过检查 在 blur 时 document.activeElement 是否为 iframe:
$(window)
.focus(function() {
console.log("focus");
})
.blur(function() {
console.log("blur");
if (document.activeElement.tagName.toLowerCase() == "iframe") {
console.log("still focus");
}
});
问题在于当用户先点击 iframe,然后再点击其他应用程序时,我无法检查页面是否不再处于前景。
那么,当网站中有 iframe 时,如何检查它是否在前景中?