【问题标题】:Reload page when user returns from other tab当用户从其他选项卡返回时重新加载页面
【发布时间】:2015-11-13 07:07:00
【问题描述】:

我在一些重视更新的网站上工作。为此,当用户从另一个选项卡切换到带有网站的选项卡时,我需要刷新页面。

有没有办法用 JavaScript / jQuery 做到这一点?我知道location.reload(); 用于刷新页面,但我不知道如何告诉 JavaScript 在标签再次变为活动状态时执行此操作(并且只有一次)。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你可以用这个:

    var vis = (function(){
    var stateKey, eventKey, keys = {
        hidden: "visibilitychange",
        webkitHidden: "webkitvisibilitychange",
        mozHidden: "mozvisibilitychange",
        msHidden: "msvisibilitychange"
    };
    for (stateKey in keys) {
        if (stateKey in document) {
            eventKey = keys[stateKey];
            break;
        }
    }
    return function(c) {
        if (c) document.addEventListener(eventKey, c);
        return !document[stateKey];
    }
    })();
    

    用法:

    var visible = vis(); // gives current state
    
    vis(aFunction);      // registers a handler for visibility changes`
    
    vis(function(){
        document.title = vis() ? 'Visible' : 'Not visible';
    });
    

    你可以在这里阅读:

    Detect if browser tab is active or user has switched away

    【讨论】:

    • 我的错!我虽然问题是关于 html 选项卡(而不是浏览器选项卡)。不错!
    • 非常简洁,完美运行(在从当前选项卡切换时也是如此)!谢谢!
    猜你喜欢
    • 2020-07-26
    • 2019-11-28
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2012-02-10
    相关资源
    最近更新 更多