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教程(4):网页边框和网页文字阴影
Apr 02 HTML / CSS
html5 css3 动态气泡按钮实例演示
Dec 02 HTML / CSS
用css3制作纸张效果(外翻卷角)
Feb 01 HTML / CSS
CSS3盒子模型详解
Apr 24 HTML / CSS
详解HTML5中垂直上下居中的解决方案
Dec 20 HTML / CSS
使用html2canvas实现浏览器截图的示例代码
Jan 26 HTML / CSS
HTML中fieldset标签概述及使用方法
Feb 01 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
May 11 HTML / CSS
html实现弹窗的实例
Jun 09 HTML / CSS
CSS 实现Chrome标签栏的技巧
Aug 04 HTML / CSS
如何使用 resize 实现图片切换预览功能
Aug 23 HTML / CSS
css3应用示例:新增的选择器
Mar 16 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处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python基础教程之五种数据类型详解
2017/01/12 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
深入了解python中元类的相关知识
2019/08/29 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
函授自我鉴定范文
2014/02/06 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
vue ref如何获取子组件属性值
2022/03/31 Vue.js