浏览器visibilitychange事件

浏览器visibilitychange事件1.项目中,从一个页面进入到另一个页面,然后在这个页面做一些修改后返回到第一个页面,这个时候第一个页面没有刷新只类似tab切换,所以用户的修改未生效。使用html的浏览器事件visibilitychange2.此事件已经得到了广泛应用,但是一些老版本的浏览器需要加相应的前缀3.微信内置的浏览器因为没有标签,所以不会触发该事件手机端直接按Home键回到桌面,也不会触发该事…

大家好,又见面了,我是你们的朋友全栈君。

1. 项目中,从一个页面进入到另一个页面,然后在这个页面做一些修改后返回到第一个页面,这个时候第一个页面没有刷新只类似tab切换,所以用户的修改未生效。使用html的浏览器事件 visibilitychange 

2. 此事件已经得到了广泛应用,但是一些老版本的浏览器需要加相应的前缀

3. 微信内置的浏览器因为没有标签,所以不会触发该事件 
    手机端直接按Home键回到桌面,也不会触发该事件
    PC端浏览器失去焦点也不会触发该事件,但是最小化回到桌面会触发

4. 定义有两个只读的document属性: hidden和visibilityStat
    
document.hidden是一个布尔值,简单的表示标签页显示或者隐藏(隐藏包括页面在后台标签页中或者浏览器最小化,但是不包括被其他软件比如打开的sublime遮盖)
    document.visibilityState属性更详细,有四个值
           =》visible: 页面在前台标签中
           =》hidden: 页面在后台标签页或者浏览器最小化
           =》uploaded: 页面正在从内存中卸载
           =》prerender: 页面在屏幕外执行预渲染处理,document.hidden的值为true

function getHiddenProp(){
    var prefixes = ['webkit','moz','ms','o'];    
    // if 'hidden' is natively supported just return it
    if ('hidden' in document) return 'hidden';    
    // otherwise loop over all the known prefixes until we find one
    for (var i = 0; i < prefixes.length; i++){
        if ((prefixes[i] + 'Hidden') in document) 
            return prefixes[i] + 'Hidden';
    } 
    // otherwise it's not supported
    return null;
}
function getVisibilityState() {
    var prefixes = ['webkit', 'moz', 'ms', 'o'];
    if ('visibilityState' in document) return 'visibilityState';
    for (var i = 0; i < prefixes.length; i++) {
        if ((prefixes[i] + 'VisibilityState') in document)
            return prefixes[i] + 'VisibilityState';
    }
    // otherwise it's not supported
    return null;
}
function isHidden() {
    var prop = getHiddenProp();
    if (!prop) return false;    
    return document[prop];
}
var visProp = getHiddenProp();
if (visProp) {
    var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';
    document.addEventListener(evtname, function () {
        document.title = document[getVisibilityState()]+"状态";
    },false);
}

 

转载于:https://www.cnblogs.com/lindsayzhao103011/p/8884418.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148461.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Tomcat配置阿里云SSL证书[通俗易懂]

    Tomcat配置阿里云SSL证书[通俗易懂]记录一次令我蛋疼的tomcat配置SSL证书在阿里云平台获取到SSL证书,并下载,里面有两个文件将证书copy到tomcat下的conf文件夹下,然后配置server.xml文件修改内容如下:<Connectorport=”443″protocol=”org.apache.coyote.http11.Http11NioProtocol”maxTh…

    2022年10月3日
    3
  • python编程画圆入门(python常用函数)

    python画圆运用了matplotlb库的figure()和Circle()函数;其中,figure()函数用于确定画布大小,而Circle()函数用于配置圆的相关信息,进而画圆。H9Z少儿编程网-https://www.pxcodes.comH9Z少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、Python3版、DellG3电脑。H9Z少儿…

    2022年4月14日
    188
  • 需求分析报告应该包含哪些部分_2020最新抖音用户画像分析报告:粉丝都有哪些特点和需求?…[通俗易懂]

    需求分析报告应该包含哪些部分_2020最新抖音用户画像分析报告:粉丝都有哪些特点和需求?…[通俗易懂]本文相关:抖音用户画像分析、抖音用户画像报告、2020最新抖音用户画像分析等不管是做抖音运营还是抖音直播,了解粉丝,了解用户的需求是非常重要的!做任何事情,对症下药你才能事半功倍!比如你的粉丝想要梨子,你却给他了一个苹果,你的粉丝大部分都是分布在三线开外的城市,你却总给他们推荐昂贵的鸡肋产品!这就是没有提前了解抖音用户画像的结果!接下来,我就给你分析一下最新的抖音用户画像报告!让你运营起…

    2022年4月30日
    46
  • Effective JavaScript Item 51 在类数组对象上重用数组方法「建议收藏」

    Effective JavaScript Item 51 在类数组对象上重用数组方法

    2022年2月5日
    53
  • a4纸两版的小册子怎么打印_word怎么打印小册子用a4

    a4纸两版的小册子怎么打印_word怎么打印小册子用a4用word打印小册子具体操作步骤:1、首先打开将要打印的文档,然后在菜单栏下面的快捷菜单栏,找到打印机的快捷图标,单击鼠标左键选择打开打印机。2、会弹出打印机设置对话框,可以进行打印前的一些细节的设置,由于是要选择打印一本小册子所以选择打印“所有页面”。3、在下面一栏是调整页面大小,也就是打印模式,选择“小册子”进行打印。4、然后下面是关于小册子的一些设置,按照自己的需要进行设置。5、设置完成以后…

    2025年9月22日
    8
  • materialize软件下载_钢琴零基础入门教程

    materialize软件下载_钢琴零基础入门教程https://materializecss.com/https://github.com/Dogfalo/materializehttp://www.materializecss.cn/1,下

    2022年8月4日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号