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显示隐藏一个div特效的具体实现
Feb 10 HTML / CSS
用CSS3写的模仿iPhone中的返回按钮
Apr 04 HTML / CSS
CSS3颜色值RGBA与渐变色使用介绍
Mar 06 HTML / CSS
CSS3只让背景图片旋转180度的实现示例
Mar 09 HTML / CSS
用canvas实现图片滤镜效果附演示
Nov 05 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
May 04 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
Jan 20 HTML / CSS
详解HTML5布局和HTML5标签
Oct 26 HTML / CSS
z-index不起作用
Mar 31 HTML / CSS
CSS3实现的3D隧道效果
Apr 27 HTML / CSS
CSS实现渐变色边框(Gradient borders)的5种方法
Mar 25 HTML / CSS
CSS中calc(100%-100px)不加空格不生效
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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
第七节 类的静态成员 [7]
2006/10/09 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
js 颜色选择插件
2017/01/23 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Python和Bash结合在一起的方法
2020/11/13 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
建筑工程技术应届生自荐信
2013/09/27 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
2014年教师节寄语
2014/08/11 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
Docker部署Mysql8的实现步骤
2022/07/07 Servers