2

次のようなものを使用して、フォーカスを簡単に確認できることを認識しています。

var hasFocus = true;
$(window).blur(function(){
    hasFocus = false;
});
$(window).focus(function(){
    hasFocus = true;
});

ただし、たとえば、ユーザーが別のアプリケーションの最初の画面で作業しているときに、2 番目の画面でブラウザー ウィンドウを開いている場合、これは false に等しくなります。

これは、ライブ データをレポートするリアルタイム アプリケーション用です。ユーザーがアプリケーションをタブまたは最小化したときにロング ポーリングを実行したくありませんが、ウィンドウが表示されているときにポーリングを実行したいと考えています。 (ピントが合っていなくても)。

ウィンドウが表示されているかどうかを確認する方法はありますか? (それは古いブラウザでうまく動作しますか?)

4

1 に答える 1

1
var hasFocus = true;
$(window)
.focus(function(eventObject){
    eventObject.stopPropagation();
    hasFocus = true;
})
.blur(function(eventObject){
     eventObject.stopPropagation();
     hasFocus = false;
 });
于 2012-05-21T05:47:47.303 に答える