2分钟后重定向页面,即使窗口未激活

时间:2017-05-23 17:56:23

标签: javascript jquery html timer countdown

即使页面未处于活动状态,我也会在[2]分钟后尝试重定向页面。这主要适用于可能会离开页面的移动用户,导致倒数计时器停止。

当移动用户登陆页面时,会显示一条消息,表明内容将在2分钟内准备就绪。大多数人不会等待并关闭窗户,只返回2分钟。之后仍然需要等待整整2分钟...

我目前正在使用以下代码,但它似乎无法正常工作

<script>
    var timer = setTimeout(function() {
        window.location='http://example.com'
    }, 120000);
</script>

非常感谢! 克里斯

3 个答案:

答案 0 :(得分:2)

您可以使用<meta>代码执行此操作:

<meta http-equiv="refresh" content="120; URL=http://example.com">

我还没有在这里做过详尽的测试,但这似乎适用于最新的Chrome,EDGE和FireFox浏览器,即使页面没有聚焦。

答案 1 :(得分:1)

两分钟后你无法重定向。但是,如果用户在至少两分钟后将其重新定位到前台,则可以重定向:

var before=(new Date()).getMinutes();
setInterval(function() {
  if((new Date()).getMinutes()-before >= 2){
    window.location='http://example.com';
  }
}, 1000);//compare each second

如果您希望它在页面关闭时也能正常工作,那么您可以将其存储在localStorage中:

 localStorage.setItem("before",localStorage.getItem("before") || (new Date()).getMinutes());
setInterval(function() {
  if((new Date()).getMinutes()-localStorage.getItem("before") >= 2){
    window.location='http://example.com';
  }
}, 1000);//compare each second

请注意,这不会在完整小时更改时工作,因此您可能会重新编码以使其基于 getTime(),但这完全取决于您...

答案 2 :(得分:0)

检查用户代理是否在移动设备中。然后,在2分钟后将Timeout设置为触发功能。然后,重定向到所需的URL。

function detectmob() { 
 if( navigator.userAgent.match(/Android/i)
 || navigator.userAgent.match(/webOS/i)
 || navigator.userAgent.match(/iPhone/i)
 || navigator.userAgent.match(/iPad/i)
 || navigator.userAgent.match(/iPod/i)
 || navigator.userAgent.match(/BlackBerry/i)
 || navigator.userAgent.match(/Windows Phone/i)
 ){
    return true;
  }
 else {
    return false;
  }
}

if(detectmob()){
setTimeout(function() {
    window.location = "http://example.com";
  }, 120000);
  

}