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悬停效果案例应用
Nov 21 HTML / CSS
css3隔行变换色实现示例
Feb 19 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
Sep 02 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
利用css3画个同心圆示例代码
Jul 03 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
Jan 07 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
Apr 24 HTML / CSS
html5 的a标签 Href 拨电话的写法
Nov 04 HTML / CSS
深入解析HTML5中的Blob对象的使用
Sep 08 HTML / CSS
基于Html5实现的语音搜索功能
May 13 HTML / CSS
详解HTML5常用的语义化标签
Sep 27 HTML / CSS
html+css合并表格边框的示例代码
Mar 31 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中数组的分组排序实例
2014/06/01 PHP
Yii清理缓存的方法
2016/01/06 PHP
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python 字符串定义
2009/09/25 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
python绘制漏斗图步骤详解
2019/03/04 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
英文版餐饮业求职信
2013/10/18 职场文书
就业意向书范文
2014/04/01 职场文书
大学计划书范文800字
2014/08/14 职场文书
单位授权委托书范本
2014/09/26 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
安全责任书
2015/01/29 职场文书
大学生求职自荐信
2015/03/24 职场文书
施工安全保证书
2015/05/09 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android