【发布时间】:2012-08-29 20:10:25
【问题描述】:
我想检查我的网站是否在前台使用 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 时,如何检查网站是否在前台?
【问题讨论】:
-
也许你可以使用this。
-
谢谢,这将涵盖现代浏览器的问题,但我还需要 IE8 支持。
标签: javascript jquery foreground