【发布时间】:2015-11-13 07:07:00
【问题描述】:
我在一些重视更新的网站上工作。为此,当用户从另一个选项卡切换到带有网站的选项卡时,我需要刷新页面。
有没有办法用 JavaScript / jQuery 做到这一点?我知道location.reload(); 用于刷新页面,但我不知道如何告诉 JavaScript 在标签再次变为活动状态时执行此操作(并且只有一次)。
【问题讨论】:
标签: javascript jquery
我在一些重视更新的网站上工作。为此,当用户从另一个选项卡切换到带有网站的选项卡时,我需要刷新页面。
有没有办法用 JavaScript / jQuery 做到这一点?我知道location.reload(); 用于刷新页面,但我不知道如何告诉 JavaScript 在标签再次变为活动状态时执行此操作(并且只有一次)。
【问题讨论】:
标签: javascript jquery
你可以用这个:
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';
});
你可以在这里阅读:
【讨论】: