私のウェブサイトがJavaScriptでフォアグラウンドにあるかどうかを確認したいと思います。しかし、あなたは私にこれをすべきだと直接私に言うので、すべてを読む前に答えないでください:
$(window)
.focus(function() {
console.log("focus");
})
.blur(function() {
console.log("blur");
});
しかし、問題は、私のページにサードパーティからのiframeがあり、ユーザーがiframeをクリックすると、ウィンドウのぼかしイベントが発生しますが、ユーザーは実際にはまだ私のページにいるということです。ブラー上のiframeであるかどうかdocument.activeElement
を確認して、これを修正しようとしました。
$(window)
.focus(function() {
console.log("focus");
})
.blur(function() {
console.log("blur");
if (document.activeElement.tagName.toLowerCase() == "iframe") {
console.log("still focus");
}
});
ここでの問題は、ユーザーが最初にiframeをクリックしてから別のアプリケーションをクリックしたときに、ページがフォアグラウンドになっていないかどうかを確認できないことです。
では、iframeが含まれているときに、サイトがフォアグラウンドにあるかどうかを確認するにはどうすればよいですか?