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实现轮播图效果实例
May 04 HTML / CSS
CSS3转换功能transform主要属性值分析及实现分享
May 06 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
Sep 01 HTML / CSS
CSS3中的Transition过度与Animation动画属性使用要点
May 20 HTML / CSS
css3media响应式布局实例
Jul 08 HTML / CSS
html5利用canvas绘画二级树形结构图的示例
Sep 27 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
Apr 04 HTML / CSS
HTML5边玩边学(3)像素和颜色
Sep 21 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
Jan 22 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
Dec 23 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
学习jquery之一
2007/04/27 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
移动端js图片查看器
2016/11/17 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
青年文明号创建承诺
2014/03/31 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server