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 15 HTML / CSS
css3 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
CSS3属性background-size使用指南
Dec 09 HTML / CSS
CSS3中使用RGBA设置透明度的示例
Aug 04 HTML / CSS
CSS3中几个新增加的盒模型属性使用教程
Mar 01 HTML / CSS
浅谈CSS3动画的回调处理
Jul 21 HTML / CSS
CSS3 创建网页动画实现弹跳球动效果
Oct 30 HTML / CSS
html5教程画矩形代码分享
Dec 04 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
Nov 05 HTML / CSS
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
Aug 24 HTML / CSS
详解HTML5 data-* 自定义属性
Jan 24 HTML / CSS
Canvas环形饼图与手势控制的实现代码
Nov 08 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中rename函数用法分析
2014/11/15 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
php扩展开发入门demo示例
2019/09/23 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
Python写入数据到MP3文件中的方法
2015/07/10 Python
python类的继承实例详解
2017/03/30 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
英文简历自荐信范文
2013/12/11 职场文书
求职信怎么写范文
2014/05/26 职场文书
应届生面试求职信
2014/07/02 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
上下班时间调整通知
2015/04/23 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers