利用HTML5判断用户是否正在浏览页面技巧

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

document.hidden

这个新出现的document.hidden属性,它显示页面是否为用户当前观看的页面,值为ture或false。

document.visibilityState

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

visibilitychange事件

监听页面可见性变化非常容易:

代码如下:

  1. // 各种浏览器兼容 
  2. var hidden, state, visibilityChange;  
  3. if (typeof document.hidden !== "undefined") { 
  4. hidden = "hidden"; 
  5. visibilityChange = "visibilitychange"; 
  6. state = "visibilityState"; 
  7. else if (typeof document.mozHidden !== "undefined") { 
  8. hidden = "mozHidden"; 
  9. visibilityChange = "mozvisibilitychange"; 
  10. state = "mozVisibilityState"; 
  11. else if (typeof document.msHidden !== "undefined") { 
  12. hidden = "msHidden"; 
  13. visibilityChange = "msvisibilitychange"; 
  14. state = "msVisibilityState"; 
  15. else if (typeof document.webkitHidden !== "undefined") { 
  16. hidden = "webkitHidden"; 
  17. visibilityChange = "webkitvisibilitychange"; 
  18. state = "webkitVisibilityState"; 
  19. }// 添加监听器,在title里显示状态变化 
  20. document.addEventListener(visibilityChange, function() { 
  21. document.title = document[state]; 
  22. }, false);// 初始化 
  23. document.title = document[state]; 


上面的代码会在页面可见性发生变化时修改document.title的值!

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

 

转载请注明:代码学堂>web前端 > html教程 > 如何利用HTML5判断用户是否正在浏览页面

posted @ 2017-07-17 18:28 代码学堂 阅读(...) 评论(...) 编辑 收藏