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 开发工具收集
Apr 17 HTML / CSS
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
Dec 31 HTML / CSS
CSS3制作ajax loader icon实现思路及代码
Aug 25 HTML / CSS
H5仿微信界面教程(一)
Jul 05 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
Jul 12 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
Jul 11 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
Mar 12 HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
Jul 26 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
Dec 03 HTML / CSS
html5 datalist 选中option选项后的触发事件
Mar 05 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
Oct 19 HTML / CSS
纯CSS3实现div按照顺序出入效果
Jul 15 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/01/23 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python数字图像处理之高级形态学处理
2018/04/27 Python
python实现kmp算法的实例代码
2019/04/03 Python
python 杀死自身进程的实现方法
2019/07/01 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
个人求职信范例
2014/01/29 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
离职证明格式样本
2015/06/12 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript