4

私のウェブサイトが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が含まれているときに、サイトがフォアグラウンドにあるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

3

PageVisibilityAPIを使用できるはずです。

この仕様は、サイト開発者がパワーとCPU効率の高いWebアプリケーションを開発するために、ページの現在の可視性の状態をプログラムで決定するための手段を定義します。

もっと詳しく知る

于 2012-08-29T20:44:17.463 に答える