即使页面未处于活动状态,我也会在[2]分钟后尝试重定向页面。这主要适用于可能会离开页面的移动用户,导致倒数计时器停止。
当移动用户登陆页面时,会显示一条消息,表明内容将在2分钟内准备就绪。大多数人不会等待并关闭窗户,只返回2分钟。之后仍然需要等待整整2分钟...
我目前正在使用以下代码,但它似乎无法正常工作
<script>
var timer = setTimeout(function() {
window.location='http://example.com'
}, 120000);
</script>
非常感谢! 克里斯
答案 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);
}