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实现滚动的齿轮动画效果
Jun 05 HTML / CSS
IE浏览器单独写CSS样式的几种方法
Oct 14 HTML / CSS
利用CSS3的transition属性实现滑动效果
Aug 05 HTML / CSS
css3实现wifi信号逐渐增强效果实例
Aug 09 HTML / CSS
CSS3实现文字描边的2种方法(小结)
Feb 14 HTML / CSS
HTML5上传文件显示进度的实现代码
Aug 30 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
Mar 22 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
Nov 18 HTML / CSS
HTML5公共页面提取作为公用代码的方法
Jun 30 HTML / CSS
使用CSS实现一个搜索引擎的原理解析
Sep 25 HTML / CSS
html中两种获取标签内的值的方法
Jun 10 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获取新浪微博数据API实例
2013/11/12 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
PHP 实现链式操作
2021/03/09 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
javascript引导程序
2008/10/26 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
Vue中props的使用详解
2018/06/15 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python实现雨滴下落到地面效果
2018/06/21 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python如何根据时间序列数据作图
2020/05/12 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
学前教育毕业生自荐信范文
2013/12/24 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
react中的DOM操作实现
2021/06/30 Javascript