手机切换到后台h5页面js不运行
2个回答
推荐于2017-05-25 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517183
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
在html5中document新增了一个事件 visibilitychange,这个事件在页面前台或后台切换时被触发,你所说的问题就简单了,它也有个对应的属性visibilityState,用于检测当前页面的状态值为hidden还是visible。
解法是,在hidden时记录当前时间,在visible时用当前时间减去之前记录的时间就为当前倒计时需要减去的时间,这也就不需要和后台沟通了,或者你直接在visible时刷新页面也行,下面是小样,你测试一下
var b=getTime();
function getTime()
{
return Date.now();
}
document.addEventListener('webkitvisibilitychange',function()
{
if(document.webkitVisibilityState=='hidden')
{
b=getTime();
}else
{
document.body.appendChild(document.createTextNode('间隔:'+(getTime()-b)))
}
})
document.addEventListener('mozvisibilitychange',function()
{
if(document.mozVisibilityState=='hidden')
{
b=getTime();
}else
{
document.body.appendChild(document.createTextNode('间隔:'+(getTime()-b)))
}
})
解法是,在hidden时记录当前时间,在visible时用当前时间减去之前记录的时间就为当前倒计时需要减去的时间,这也就不需要和后台沟通了,或者你直接在visible时刷新页面也行,下面是小样,你测试一下
var b=getTime();
function getTime()
{
return Date.now();
}
document.addEventListener('webkitvisibilitychange',function()
{
if(document.webkitVisibilityState=='hidden')
{
b=getTime();
}else
{
document.body.appendChild(document.createTextNode('间隔:'+(getTime()-b)))
}
})
document.addEventListener('mozvisibilitychange',function()
{
if(document.mozVisibilityState=='hidden')
{
b=getTime();
}else
{
document.body.appendChild(document.createTextNode('间隔:'+(getTime()-b)))
}
})
追问
这段代码只适应于浏览器页面与浏览器后台之间的切换,我所说的切换到后台是手机自身的后台
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询