Jquery/Javascript:可以知道页面何时聚焦吗?

Jquery/Javascript:可以知道页面何时聚焦吗?,javascript,jquery,refresh,handler,Javascript,Jquery,Refresh,Handler,我的目标是在聚焦“页面选项卡”时使用jquery自动刷新某些组件。我有一个“购物车排序”,我想自动更新它,即使你是显示我的网站从超过1个标签。 另外,我正在尝试从页面内的iframe开始工作 这是可能的,还是我必须使用一些定时器定期自动刷新 编辑:在阅读解决方案后,我让它对每个焦点都有效一次,不知道它是否是最好的解决方案,但它完成了工作:D var focusPage = false; var firstFocus = false; $(window).focus(function () {

我的目标是在聚焦“页面选项卡”时使用jquery自动刷新某些组件。我有一个“购物车排序”,我想自动更新它,即使你是显示我的网站从超过1个标签。 另外,我正在尝试从页面内的iframe开始工作

这是可能的,还是我必须使用一些定时器定期自动刷新

编辑:在阅读解决方案后,我让它对每个焦点都有效一次,不知道它是否是最好的解决方案,但它完成了工作:D

var focusPage = false;
var firstFocus = false;
$(window).focus(function () {
                focusPage = true;
                if (firstFocus) {
                    firstFocus = false;
                    //BAM! Refresh your stuff
                }
            });
$(window).blur(function () {
                    focusPage = false;
                    firstFocus = true;
                });

您可以捕获窗口上的
焦点
事件。
尝试使用:

$(window).focus(function(){
   //refresh your div;
});

使用此选项似乎效果良好:

$(document).ready(function () {
    $(window).focus(function () {
        console.log("bam!");
    })
});

正是你上面写的可以通过这个来实现

window.onblur=function(){
window.onfocus=function(){location.reload(true);}
};


它只会做一次。您可以通过此调用减少代码。

可能的重复:这对我不起作用:(我正在使用focus函数中的一个警报进行尝试,但它没有被触发:(甚至使用“body”和“#body”进行了尝试,但没有结果:(有一种方法可以仅在我的窗口第一次获得焦点时调用它?如果希望在第一次bam后取消它,请在焦点回调中使用
$(window).unbind('focus');
)。