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弹性伸缩布局之box布局
Jul 12 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
Dec 04 HTML / CSS
IE滤镜与CSS3效果(详细整理分享)
Jan 25 HTML / CSS
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
Aug 08 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
Feb 24 HTML / CSS
html5使用canvas绘制一张图片
Dec 15 HTML / CSS
Html5实现用户注册自动校验功能实例代码
May 24 HTML / CSS
详解html5页面 rem 布局适配方法
Jan 12 HTML / CSS
详解CSS伪元素的妙用单标签之美
May 25 HTML / CSS
什么是css原子化,有什么用?
Apr 24 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
桌面中心(二)数据库写入
2006/10/09 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
对python多线程与global变量详解
2018/11/09 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
Python元组知识点总结
2019/02/18 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
学习党章思想汇报
2014/01/07 职场文书
销售经理工作职责
2014/02/03 职场文书
称象教学反思
2014/02/03 职场文书
运动会致辞稿50字
2014/02/04 职场文书
《海底世界》教学反思
2014/04/16 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
长江三峡导游词
2015/01/31 职场文书
美容院管理规章制度
2015/08/05 职场文书
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android