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中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
css3翻牌翻数字的示例代码
Feb 07 HTML / CSS
html5自带表单验证体验优化及提示气泡修改功能
Sep 12 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
Jun 03 HTML / CSS
自定义html标记替换html5新增元素
Oct 17 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
Sep 21 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
Aug 18 HTML / CSS
html5开发三八女王节表白神器
Mar 07 HTML / CSS
移动端Html5页面生成图片解决方案
Aug 07 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
Apr 08 HTML / CSS
css布局巧妙技巧之css三角示例的运用
Mar 16 HTML / CSS
使用CSS实现按钮边缘跑马灯动画
May 07 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
Yii中的cookie的发送和读取
2016/07/27 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
小程序实现留言板
2018/11/02 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python与Redis的连接教程
2015/04/22 Python
详解Django中Request对象的相关用法
2015/07/17 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
地理教师岗位职责
2014/03/16 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
学生安全责任协议书
2016/03/22 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS