visibilitychange事件判断当前页面——可见性的状态

原文:http://www.webhek.com/page-visibility/

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";
}

// 添加监听器,在title里显示状态变化
document.addEventListener(visibilityChange, function() {
	document.title = document[state];
}, false);

// 初始化
document.title = document[state];

上面的代码会在页面可见性发生变化时修改document.title的值!

那么,什么时候需要使用visibilitychange事件呢?比如,如果你的页面上有嵌入视频正在播放,当用户切换到其它标签页时,你的标签页上的视频应自动暂停播放,当用户切换回来时继续接着播放。再比如,如果你的页面有自动刷新动作,当用户切换到其它标签页时,你就应该停止刷新,而当用户切换回来时继续之前的动作。

时间: 2024-11-07 04:38:55

visibilitychange事件判断当前页面——可见性的状态的相关文章

浏览器,tab页显示隐藏的事件监听--页面可见性

//监听浏览器tab切换,以便在tab切换之后,页面隐藏的时候,把弹幕停止 document.addEventListener('webkitvisibilitychange', function() { if (document.hidden === true) { //页面已隐藏 } else { //页面显示 } }, false); 可参考: https://developer.mozilla.org/zh-CN/docs/Web/Guide/User_experience/Using_

页面监听状态改变网站Title

长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法.用户是否去看别的网站了?他们切换回来了么? 现在,HTML5里页面可见性接口就提供给了程序员一个方法,让他们使用visibilitychange页面事件来判断当前页面可见性的状态,并针对性的执行某些任务.同时还有新的document.hidden属性可以使用. document.hidden 这个新出现的document.hidden属性,它显示页面是否为用户当前观看的页面,值为ture或false. document.visib

页面可见性改变事件 : visibilitychange 详解

1.Page Visibility API标准概述 查看W3C的官方文档时候看到这个属性 标准时间线是这样介绍的: Page Visibility Level 2 W3C Proposed Recommendation 17 October 2017 查看W3C的工作流程的时候可以看到应该是处于W3C提议推荐的阶段,虽然还没有被完全的推荐成为标准,并且不是每一款浏览器都有所支持,但还是值得研究一下. 2.定义 顾名思义这是一个页面可见性API. 简单的说,浏览器标签页被隐藏或显示的时候会触发vi

判断标签页显示隐藏(visibilitychange事件)

简单的说,浏览器标签页被隐藏或显示的时候会触发visibilitychange事件. 这个事件可以满足一些用户需求,比如标签页隐藏的时候停止播放音乐视频.停止一些不必要的轮询,还有停止一些诸如轮播等循环动画效果等等.这些可以节省服务器和本地的开销. 这个事件已经得到现代浏览器广泛的支持,不过一些老版本的浏览器需要加相应的前缀. Chrome (Webkit) Firefox (Gecko) Internet Explorer Opera Safari (WebKit) 13前缀webkit33无

js 判断页面加载状态

//----判断当前页面是否加载状态 开始 ---- document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. function subSomething() { if (document.readyState != 'complete') //当页面加载状态 { //----显示遮罩 开始---- $(".overlay").css({ 'display': 'block', 'opacity': '0.8' }

Page Visibility(页面可见性) API介绍、微拓展[转]

一.网页君的悲情谁来懂 唉,突然想到了一首悲情诗: 泪湿罗巾梦不成,夜深前殿按歌声.红颜未老恩先断, 斜倚薰笼坐到明. 学生时代学过的一首诗,已还给老师不知所云的诸位可参见下面释义: 诗的主人公是一位不幸的宫女.她一心盼望君王的临幸而终未盼得,时已深夜,只好上床,已是一层怨怅.宠幸不可得,退而求之好梦:辗转反侧,竟连梦也难成,见出两层怨怅.梦既不成,索性揽衣推枕,挣扎坐起.正当她愁苦难忍,泪湿罗巾之时,前殿又传来阵阵笙歌,原来君王正在那边寻欢作乐,这就有了三层怨怅.倘使人老珠黄,犹可解说:偏偏她

Page Visibility API(页面可见性)

页面可见性: 就是对于用户来说,页面是显示还是隐藏, 所谓显示的页面,就是我们正在看的页面:隐藏的页面,就是我们没有看的页面. 因为,我们一次可以打开好多标签页面来回切换着,始终只有一个页面在我们眼前,其他页面就是隐藏的,还有一种就是,把浏览器最小化,所有的页面就都不可见了. API 很简单,document.hidden 就返回一个布尔值,如果是true, 表示页面可见,false 则表示,页面隐藏.  不同页面之间来回切换,触发visibilitychange事件. 还有一个document

判断当前页面离开后处理数据

做一个项目,涉及到记录下当前页面的鼠标坐标,并发送给后台. 有两个步骤,一步是记录下鼠标坐标并发送后台,二步是当鼠标离开页面时停止发送数据. 记录下鼠标坐标并发送的代码,如下: // 用sta字符串记录下鼠标的坐标 var sta = ''; function changeXY(){ $(window).bind('mousemove',function(e){ var x = e.pageX; var y = e.pageY; sta += '(' + x +':' + y + '),'; }

Struts2重新学习之自定义拦截器(判断用户是否是登录状态)

拦截器 一:1:概念:Interceptor拦截器类似于我们学习过的过滤器,是可以再action执行前后执行的代码.是web开发时,常用的技术.比如,权限控制,日志记录. 2:多个拦截器Interceptor连在一起组成了Interceptor栈.拦截器是AOP面向切面编程的一种实现,具有热插拔的效应. 3:Struts2拦截器,每个拦截器类只有一个对象实例,即采用了单利模式.所有引用这个拦截器的action都共享着一拦截器类的实例. 拦截器和过滤器的区别 1:拦截器和过滤器的概念非常类似 2: