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

简单的说,浏览器标签页被隐藏或显示的时候会触发visibilitychange事件。

这个事件可以满足一些用户需求,比如标签页隐藏的时候停止播放音乐视频、停止一些不必要的轮询,还有停止一些诸如轮播等循环动画效果等等。这些可以节省服务器和本地的开销。

这个事件已经得到现代浏览器广泛的支持,不过一些老版本的浏览器需要加相应的前缀。

Chrome (Webkit) Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
13前缀webkit
33无需前缀
10前缀moz
18无需前缀
10前缀ms 12.10 最新的测试已经支持

注:Opera 12.10浏览器在最小化时不触发visibilitychange事件,也不将hidden属性设置为true.

document的可见性属性

Page Visibility (Second Edition)中定义了2个只读的document属性:hiddenvisibilityState。

其中document.hidden是一个布尔值,简单的表示标签页显示或者隐藏。而document.visibilityState属性更为详细,目前有四个可能的值:

  • visible : 页面内容至少部分可见。这意味着在实际情况中,该网页是一个非最小化窗口的可见标签页。
  • hidden : 页面内容是对用户不可见。实际上,这意味着该文档是后台标签页或最小化窗口的一部分,或者系统锁屏是时的状态。
  • prerender : 网页内容被预渲染并且用户不可见。
  • unloaded : 如果文档被卸载,那么这个值将被返回。

一般情况下我们使用document.hidden就能满足通常的需求。

document.addEventListevent(‘vibisilitychange‘,function(){
     document.title = document.hidden ? ‘你快回来,我一个个人承受不来‘ :‘我在呢‘
});

  

原文地址:https://www.cnblogs.com/zshno1/p/9739407.html

时间: 2024-10-06 00:12:21

判断标签页显示隐藏(visibilitychange事件)的相关文章

JS 监听浏览器标签页显示隐藏

JS 监听浏览器标签页显示隐藏 API document.hidden 判断页面是否隐藏的布尔值.页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 document.visibilityState (只读属性), 返回document的可见性,4个值: hidden:文档处于背景标签页或者窗口处于最小化状态,或者操作系统正处于 '锁屏状态' visible:此页面在前景标签页中,并且窗口没有最小化 prerender:页面在屏幕外执行预渲染处理 document.hidden 的值为 tru

浏览器,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_

5购物车菜单显示隐藏和事件委托版

HTML代码: 第一版HTML:(非事件委托版) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>菜单和详细显示隐藏</title> <style type="text/css"> * { margin: 0; padding: 0; font-family: "\5FAE\8F6F\96C5\9ED1

Eclipse标签页显示最近修改

新版的eclipse(貌似是4.3开始)编辑区的标签页不按最近修改的显示,文件打开一多,感觉很不习惯,对比查看代码经常都是不断的ctrl+shift+r,超级麻烦,后来网上查找了一下,原来可以做修改,下面给出方法 4.3改法: eclipse安装目录/plugins/org.eclipse.platform_4.3.2.v20140221-1700/css/找到eclipse当前样式的css文件,win7默认为e4_default_win7.css 打开,将下面的swt-mru-visible:

在浏览器的标签页显示网站标志图标(或指定图标)的方法

对于不同的浏览器,方法是有差别的1.对于IE或TT浏览器:把需要显示的16x16像素的ICO图标命名为favicon.ICO放置在网站根目录下,浏览器会自动检索2.这大概是所有浏览器通用的在标签页加入指定图标的方法:把favicon.ico图标放到网站根目录下,在网页的<head></head>中加入<link rel="shortcut icon" href="favicon.ico" type="image/x-icon&

使 Firefox 和 Vivaldi 只在新标签页显示书签栏

Firefox 新建 ~/.mozilla/firefox/rre9emvh.default/chrome/userChrome.css (大概不同人的 rre9emvh.default 目录会有不同的名字?) 内容如下 /* * Bookmarks toolbar is visible only on new tab page, just like Chrome. * * Screenshot: https://vimeo.com/235059188 * Video: https://vime

bootstrap标签页(Tab)插件事件

事件 下表列出了标签页(Tab)插件中要用到的事件.这些事件可在函数中当钩子使用. 事件 描述 实例 show.bs.tab 该事件在标签页显示时触发,但是必须在新标签页被显示之前.分别使用 event.target 和event.relatedTarget 来定位到激活的标签页和前一个激活的标签页. $('a[data-toggle="tab"]').on('show.bs.tab', function (e) { e.target // 激活的标签页 e.relatedTarget

利用localStorage事件来跨标签页共享sessionStorage

//干货 利用localStorage事件来跨标签页共享sessionStorage //因为cookie保存字节数量有限,很多童鞋考虑用html5 storage来保存临时数据,Sessionstorage就比较适合来保存临时数据了. //但有个问题呵:Sessionstorage:不支持跨标签页共享数据,就是说Sessionstorage只在同一个页面内有效,即使用一域名,新打开一个tab窗口,也是不能共享Sessionstorage的. //那么有没有办法呢,那是有的.... //原理是运

elementUI中Tabs标签页的使用

一.系统公告这栏是直接引入系统消息这个页面的,现在需要在系统公告这栏加入一个返回按钮,但是又不能直接在人家的系统消息页面上加,如何实现?? 解决:利用Tabs标签页提供的@tab-click事件. 首先直接在个人中心这个页面上加入按钮标签,但是给它一个v-if属性,当其为true时就显示按钮,false就不显示. 二.跳转到指定的标签 需求:从页面A跳到该页面时指向配置管理这栏.其他页面跳到此还是默认为用户管理这栏. 解决:从页面A跳过来时可以带一个参数,用于该页面做条件判断. 第一步:在A页面