我正在使用带隐藏属性的html5文档对象来检测用户是否已切换到另一个选项卡。如何检查用户是否以相同方式返回当前选项卡?
请参阅我的代码:
var PERIOD_NOT_VISIBLE = 60000;
var PERIOD_VISIBLE = 5000;
var timestring = 0;
(function callThis(timestring) {
//update notification
timer = setTimeout(function() {
callThis(timestring);
}, (document.hidden) ? PERIOD_NOT_VISIBLE : PERIOD_VISIBLE);
})();
每隔5秒进行一次间隔更新通知。当前文件失去焦点时,间隔计时器增加到1分钟。所以这个最新的请求只会在1分钟后运行。
如果用户在完成1分钟之前的任何时间返回文档,他仍然没有更新通知,因为他必须等待当前请求首先完成。只有在那之后计时器才回到5秒。
是否可以检测用户是否已在不等待1分钟后完成请求的情况下返回当前文档?
答案 0 :(得分:3)
You can use blur
and focus
event in window to detect it.
$(window).on("blur", function() {
// do whatever you want
$("body").append("<p>Windows lost focus</p>");
});
$(window).on("focus", function() {
// do whatever you want
$("body").append("<p>Windows got focus</p>");
});
Here is a working example http://jsfiddle.net/uX84X/9/ (Click in result box of jsfiddle to test)