HTML5中判断用户是否正在浏览页面的方法


Posted in HTML / CSS onMay 03, 2014

现在,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";
}</p> <p>// 添加监听器,在title里显示状态变化
document.addEventListener(visibilityChange, function() {
document.title = document[state];
}, false);</p> <p>// 初始化
document.title = document[state];

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

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

HTML / CSS 相关文章推荐
利用CSS3的定位页面元素
Aug 29 HTML / CSS
CSS3盒子模型详解
Apr 24 HTML / CSS
css3的@media属性实现页面响应式布局示例代码
Feb 10 HTML / CSS
HTML5 语义化结构化规范化
Oct 17 HTML / CSS
html5指南-2.如何操作document metadata
Jan 07 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
Jan 09 HTML / CSS
html5与css3小应用
Apr 03 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
HTML5图片预览实例分享
Jun 04 HTML / CSS
HTML5未来发展趋势
Feb 01 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
Jul 26 HTML / CSS
html实现弹窗的实例
Jun 09 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
May 03 #HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
May 03 #HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 #HTML / CSS
HTML5中5个简单实用的API
Apr 28 #HTML / CSS
会走动的图形html5时钟示例
Apr 27 #HTML / CSS
html5定位并在百度地图上显示的示例
Apr 27 #HTML / CSS
HTML5中的autofocus(自动聚焦)属性介绍
Apr 23 #HTML / CSS
You might like
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
基于nodejs实现微信支付功能
2017/12/20 NodeJs
解决layer图标icon不加载的问题
2019/09/04 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
英语简历自我评价
2014/01/26 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫