使用HTML5里页面可见性接口判断用户是否正在观看你的页面

标签: 技术技巧 html5 页面可见性 | 发表时间:2014-04-29 09:40 | 作者:歪脖骇客
出处:http://www.webhek.com

长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法。用户是否去看别的网站了?他们切换回来了么?现在,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的值!

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

相关 [html5 页面 接口] 推荐:

使用HTML5里页面可见性接口判断用户是否正在观看你的页面

- - WebHek
长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法. 现在,HTML5里页面可见性接口就提供给了程序员一个方法,让他们使用 visibilitychange页面事件来判断当前页面可见性的状态,并针对性的执行某些任务. 同时还有新的 document.hidden属性可以使用. 这个新出现的 document.hidden属性,它显示页面是否为用户当前观看的页面,值为ture或false.

玩转HTML5移动页面(动效篇)

- - 腾讯ISUX - 社交用户体验设计 - Better Experience Through Design
作为一名前端,在拿到设计稿时你有两种选择:. 2.加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来. 作为一个有志向的前端,当然是选2啦. 可是需求时间又很短很短,怎么办呢. 这次就来谈谈一些动画设计的小技巧,能在你时间不多又没有动画想法的时候瞬间让页面增色不少. 同时也会谈及移动端H5页面的优化细节与关键点,因此本文章将分为 动效篇和.

HTML5的页面资源预加载技术(Link prefetch)加速页面加载

- - HTML5资源教程
不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉. 有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用.htaccess设置页面头信息和缓存时间,JavaScript压缩,使用CDN等. 我曾经介绍过本站上使用的一些速度优化技术.

HTML5基础,第2部分:组织页面的输入

- nixer - 译言-电脑/网络/数码科技
来源HTML5 fundamentals, Part 2: Organizing inputs. (译者注:由于yeeyan编辑器对文章中的标签做解析的原因,我在每个标签的空格,比如说,左尖括号<+fieldset+右尖括号>,我会写成< fieldset>,以便其能够在文章中正确显示,不便之处敬请谅解.

使用 HTML5 和 CSS3 制作登录页面完整步骤

- Amo - HTML5研究小组
本文详细介绍使用 HTML5 和 CSS3 制作一个登录页面的完整过程. 所用到的 HTML5 的特性:. placeholder – 输入框的简短提示,当该输入框获得输入焦点时,该提示信息自动消失. required – 指定该输入元素是否必须提供. autofocus – 指定输入框是否在页面加载完毕自动获取输入焦点.

BBC已经在新闻页面用HTML5取代Flash

- - HTML5研究小组
就在80% 的Web 视频已经被统计出采用HTML5 规范的今天,英国媒体BBC 宣布将其新闻网站中的所有页面改组成HTML5 规范,之前的Flash播放器及其内容将随之淡出. 这意味着BBC针对移动设备以及不同种类不同平台浏览器的兼容性将变得更好. 而业内担忧的是HTML5的控制功能并不完善,是否可以胜任视频传输的任务,此外HTML5没有Flash的DRM来控制版权视频的播放.

玩转HTML5移动APP页面(优化篇)

- - 设计达人
承接上文《 玩转HTML5移动APP页面(动效篇)》,上次说的是让页面动起来的一些小技巧. 而页面动起来的根基是功能可用的页面,因此有必要分享一些优化细节的技巧和方向,熟悉掌握一些方法论还是会对页面开发大大提高效率的,并且也能防止疏忽缺漏. 涉及的动画十分多,用的元素也十分多,请务必使用雪碧图(Sprite).

如何设计一个安全的对外接口 - ksfzhaohui的个人页面 - OSCHINA

- -
最近有个项目需要对外提供一个接口,提供公网域名进行访问,而且接口和交易订单有关,所以安全性很重要;这里整理了一下常用的一些安全措施以及具体如何去实现. 个人觉得安全措施大体来看主要在两个方面,一方面就是如何保证数据在传输过程中的安全性,另一个方面是数据已经到达服务器端,服务器端如何识别数据,如何不被攻击;下面具体看看都有哪些安全措施.

HTML5 logo 发布

- Greyby - 酷壳 - CoolShell.cn
2011年1月19日,W3C发布了HTML5的log,打开W3C的页面,下在的图片印入眼前. 我的第一感觉,就像是看到了小时候看的八一电影制片产的电影. 这分明是号召全世界的无产Web程序员们团结起来,不畏艰难,不怕牺牲,一定要把HTML5的革命事业进行到底. 所以,请各位Web程序员不但在你们的HTML5的网页上加上下面的徽章(关于各个徽章的含义,请参看这里).

html5 canvas入门

- - Marshal's Blog
可以把canvas看做div,不过,它的长和宽不能通过css来定义,要使用标签属性:. 或者javascript对象属性设置:. 使用canvas,只有一种操作方式,使用javascript. 获得canvas对象的上下文对象,该对象是操作canvas的主要对象:. 使用canvas画最简单的线, 点击运行示例,结果看起来是这样:.