html5中文学习网

您的位置: 首页 > html5资讯 > 最新动态 » 正文

HTML5中判断用户是否正在浏览页面的方法_html5教程技巧

[ ] 已经帮助:人解决问题
点评:长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法。用户是否去看别的网站了?他们切换回来了么?

现在,HTML5里页面可见性接口就提供给了程序员一个方法,让他们使用visibilitychange页面事件来判断当前页面可见性的状态,并针对性的执行某些任务。同时还有新的document.hidden属性可以使用。zJ6HTML5中文学习网 - HTML5先行者学习网

document.hiddenzJ6HTML5中文学习网 - HTML5先行者学习网

这个新出现的document.hidden属性,它显示页面是否为用户当前观看的页面,值为ture或false。zJ6HTML5中文学习网 - HTML5先行者学习网

document.visibilityStatezJ6HTML5中文学习网 - HTML5先行者学习网

visibilityState的值要么是visible (表明页面为浏览器当前激活tab,而且窗口不是最小化状态),要么是hidden (页面不是当前激活tab页面,或者窗口最小化了。),或者prerender (页面在重新生成,对用户不可见。).zJ6HTML5中文学习网 - HTML5先行者学习网

visibilitychange事件zJ6HTML5中文学习网 - HTML5先行者学习网

监听页面可见性变化非常容易:zJ6HTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
zJ6HTML5中文学习网 - HTML5先行者学习网
// 各种浏览器兼容zJ6HTML5中文学习网 - HTML5先行者学习网
var hidden, state, visibilityChange; zJ6HTML5中文学习网 - HTML5先行者学习网
if (typeof document.hidden !== "undefined") {zJ6HTML5中文学习网 - HTML5先行者学习网
hidden = "hidden";zJ6HTML5中文学习网 - HTML5先行者学习网
visibilityChange = "visibilitychange";zJ6HTML5中文学习网 - HTML5先行者学习网
state = "visibilityState";zJ6HTML5中文学习网 - HTML5先行者学习网
} else if (typeof document.mozHidden !== "undefined") {zJ6HTML5中文学习网 - HTML5先行者学习网
hidden = "mozHidden";zJ6HTML5中文学习网 - HTML5先行者学习网
visibilityChange = "mozvisibilitychange";zJ6HTML5中文学习网 - HTML5先行者学习网
state = "mozVisibilityState";zJ6HTML5中文学习网 - HTML5先行者学习网
} else if (typeof document.msHidden !== "undefined") {zJ6HTML5中文学习网 - HTML5先行者学习网
hidden = "msHidden";zJ6HTML5中文学习网 - HTML5先行者学习网
visibilityChange = "msvisibilitychange";zJ6HTML5中文学习网 - HTML5先行者学习网
state = "msVisibilityState";zJ6HTML5中文学习网 - HTML5先行者学习网
} else if (typeof document.webkitHidden !== "undefined") {zJ6HTML5中文学习网 - HTML5先行者学习网
hidden = "webkitHidden";zJ6HTML5中文学习网 - HTML5先行者学习网
visibilityChange = "webkitvisibilitychange";zJ6HTML5中文学习网 - HTML5先行者学习网
state = "webkitVisibilityState";zJ6HTML5中文学习网 - HTML5先行者学习网
}</p><p>// 添加监听器,在title里显示状态变化zJ6HTML5中文学习网 - HTML5先行者学习网
document.addEventListener(visibilityChange, function() {zJ6HTML5中文学习网 - HTML5先行者学习网
document.title = document[state];zJ6HTML5中文学习网 - HTML5先行者学习网
}, false);</p><p>// 初始化zJ6HTML5中文学习网 - HTML5先行者学习网
document.title = document[state];
zJ6HTML5中文学习网 - HTML5先行者学习网
上面的代码会在页面可见性发生变化时修改document.title的值!zJ6HTML5中文学习网 - HTML5先行者学习网

那么,什么时候需要使用visibilitychange事件呢?比如,如果你的页面上有嵌入视频正在播放,当用户切换到其它标签页时,你的标签页上的视频应自动暂停播放,当用户切换回来时继续接着播放。再比如,如果你的页面有自动刷新动作,当用户切换到其它标签页时,你就应该停止刷新,而当用户切换回来时继续之前的动作。zJ6HTML5中文学习网 - HTML5先行者学习网

zJ6HTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助