【问题标题】:Jquery / Javascript: Is possible to know when page is focussed?Jquery / Javascript:是否可以知道页面何时聚焦?
【发布时间】:2012-12-23 06:23:03
【问题描述】:

我的目标是在聚焦“页面选项卡”时使用 jquery 自动刷新某些组件。我有一个“购物车”,即使您从多个选项卡显示我的网站,我也想自动更新它。 另外,我正试图让它在页面内的 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;
                });

【问题讨论】:

标签: javascript jquery refresh handler


【解决方案1】:

您可以在窗口中捕获focus 事件。 尝试使用:

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

【讨论】:

  • 这对我不起作用:(我正在尝试使用焦点功能内的警报但它没有被触发:(甚至尝试使用'body'和'#body'但没有结果:(
【解决方案2】:

使用它似乎效果很好:

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

【讨论】:

  • 有一种方法可以在我的窗口第一次获得焦点时调用它?
  • 如果你希望它在第一次 bam 后取消,请在焦点回调中使用 $(window).unbind('focus');
【解决方案3】:

你上面写的就是这样可以实现的

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

它只会做一次事情。你可以通过这个调用来减少代码。

【讨论】:

    猜你喜欢
    • 2014-08-30
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2016-10-02
    相关资源
    最近更新 更多