转自:http://www.webhek.com/page-visibility

长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法。用户是否去看别的网站了?他们切换回来了么?现在,HTML5里页面可见性接口就提供给了程序员一个方法,让他们使用visibilitychange页面事件来判断当前页面可见性的状态,并针对性的执行某些任务。同时还有新的document.hidden属性可以使用。

document.hidden

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

document.visibilityState

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

visibilitychange事件

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

// 各种浏览器兼容
var hidden, state, visibilityChange;
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
state = "visibilityState";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
state = "mozVisibilityState";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
state = "msVisibilityState";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
state = "webkitVisibilityState";
} // 添加监听器,在title里显示状态变化
document.addEventListener(visibilityChange, function() {
document.title = document[state];
}, false); // 初始化
document.title = document[state];

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

最新文章

  1. PyQt4入门学习笔记(二)
  2. EF 配置(SqlServer,Mysql)
  3. eclips android项目复制
  4. php接二进制文件
  5. Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA 解决方案
  6. REST_FRAMEWORK加深记忆-三种CLASS VIEW的进化史
  7. 【程序员的SQL金典】笔记(第1章~第5章)
  8. poj 3294 Life Forms
  9. [Leetcode][015] 3Sum (Java)
  10. web.xml中contextConfigLocation的作用(转)
  11. 排序 之 快排、归并、插入 - <时间复杂度>----掌握思想和过程
  12. ios UIImageView处理图片大小问题
  13. SpringBoot构建RESTful service完成Get和Post
  14. JS -- The Scope Chain 作用域链
  15. __x__(12)0906第三天__<meta>标签
  16. MyBatis探究-----核心配置文件mybatis-config.xml中配置mappers的几种方式
  17. Find them, Catch them POJ - 1703
  18. java,让debug出色
  19. 翻译:low_priority和high_priority(已提交到MariaDB官方手册)
  20. Java编程的逻辑 (91) - Lambda表达式

热门文章

  1. ApplicationContext详解以及多个ApplicationContext.xml的相互引用
  2. asp.net mvc json数据缓存
  3. DS博客作业04--树大作业说明
  4. Spring整合struts的配置文件存放问题
  5. 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁
  6. How Many Tables 简单并查集
  7. CTF-练习平台-Misc之 多种方法解决
  8. HTML第一课——基础知识普及【2】
  9. java8 array、list操作 汇【3】)(-Java8新特性之Collectors 详解
  10. MySQL--lsblk命令查看块设备