jQurey浏览器页卡切换 用于实时接口的长轮询

news/2024/7/24 10:06:49

方法1,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="http://mat1.gtimg.com/www/js/jquery/jquery-1.11.1.min.js"></script>
    <script>
/***
   切换浏览器tab,判断当前tab是否活跃
***/
    (function(g, h, $, b) {
        var e, i, f = 'onfocusin' in h && 'hasFocus' in h ? 'focusin focusout' : 'focus blur',
            d = ['', 'moz', 'ms', 'o', 'webkit'],
            c = $.support,
            a = $.event;
        while ((i = e = d.pop()) != b) {
            i = (e ? e + 'H' : 'h') + 'idden';
            if (c.pageVisibility = typeof h[i] == 'boolean') {
                f = e + 'visibilitychange';
                break
            }
        }
        $(/blur$/.test(f) ? g : h).bind(f,
            function(m) {
                var l = m.type,
                    j = m.originalEvent,
                    k = j.toElement;
                if (!/^focus./.test(l) || (k == b && j.fromElement == b && j.relatedTarget == b)) {
                    a.trigger((i && h[i] || /^(?:blur|focusout)$/.test(l) ? 'hide' : 'show') + '.visibility')
                }
            })
    }(this, document, jQuery));

    var o={}
    o.$tabFlag = true;
     /**  切换页卡 **/  
    var changeTab=function() {
        console.log(333)
        $(document).bind({
            'show.visibility': function() { // 当前活跃
                o.$tabFlag = true;
                console.log(222)
            },
            'hide.visibility': function() { // 失去当前状态
                o.$tabFlag = false;
                console.log(11111)
            }
        });
    }
    
    changeTab();
    </script>
</head>
<body>    
</body>
</html>

 方法2

                var o={};
                // 找到当前浏览器支持的hidden属性名和visibilitychange事件名
                var hidden, visibilityChange;
                if (typeof document.hidden !== "undefined") {
                    hidden = "hidden";
                    visibilityChange = "visibilitychange";
                } else if (typeof document.mozHidden !== "undefined") {
                    hidden = "mozHidden";
                    visibilityChange = "mozvisibilitychange";
                } else if (typeof document.msHidden !== "undefined") {
                    hidden = "msHidden";
                    visibilityChange = "msvisibilitychange";
                } else if (typeof document.webkitHidden !== "undefined") {
                    hidden = "webkitHidden";
                    visibilityChange = "webkitvisibilitychange";
                }
                $(document).bind(visibilityChange,function(){
                    if (document[hidden]) {
                        console.log(1111)
                        o.$tabFlag = false;
                        // videoElement.pause();
                    } else {
                        console.log(222)
                        o.$tabFlag = true;
                        // videoElement.play();
                    }
                })

 

FeatureChrome (Webkit)Firefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support13 webkit10 (10) moz
18 (18)
10 ms12.10[*]Not supported

 


http://www.niftyadmin.cn/n/1816639.html

相关文章

【vue3+ts后台管理】登录页面完成

创建登录页面及其路由 创建 LoginView.vue&#xff0c;先随便写点什么 修改 index.ts 增加登录页的路由 const routes: Array<RouteRecordRaw> [{...},{...},{path: /login,name: login,component: () > import(../views/LoginView.vue)} ]然后在浏览器输入http:/…

跨站点共享Session解决方案、单点登录解决方案(ASP.NET 2.0版本)

我们在进行Web开发时经常会用到Session&#xff0c;用它去标识不同的会话&#xff0c;那么涉及到跨站点的时候如何实现Session共享呢&#xff1f;通常的解决方案有&#xff1a;使用数据库、使用Cookies做中间桥等等。下面介绍一种基于ASP.NET 2.0的&#xff0c;通过序列化和反序…

VMware + Ubuntu-desktop-20.04 LTS安装与配置(一步步教你~)

文章目录前言安装VMware-workstation-pro 16下载安装下载镜像Ubuntu-desktop-20.04 LTS管理安装系统选创建新的虚拟机中文、输入法、背景、终端美化中文背景输入法终端root和必备品VScodevscode中文主题C环境方法一&#xff1a;方法二&#xff1a;字体大小前言 之所以写这篇&a…

安全检测风险

文章目录Root 设备运行风险Janus 签名机制漏洞Root 设备运行风险 su 是 Linux 下切换用户的命令&#xff0c;在使用时不带参数&#xff0c;就是切换到超级用户。通常我们获取 root 权限&#xff0c;就是使用 su 命令来实现的&#xff0c;所以可以检查这个命令是否存在 1&…

基于IE的Web A4打印

<html> <head> <title>weldon</title> <meta http-equiv"Content-Type" content"text/html; charsetgb2312"> <!--mediaprint 这个属性可以在打印时有效--> <style mediaprint> .Noprint{display:none;} …

每次一点点,打造自己的vim

vimrc路径&#xff0c;~/.vimrc vimrc注释&#xff1a;双引号 1.显示行号 临时显示是在文本中set nu&#xff0c;取消是set nonu 永久显示是在vimrc中加上set number 2.新行自动缩进 使得新行缩进和上一行一样set autoindent 就是自动缩进的意思&#xff0c;当你在输入状…

【vue3+ts后台管理】首页完成

文章目录布局搭建首页侧边栏的动态路由布局搭建 根据Element UI 中的Container 布局容器-常见页面布局&#xff0c;我们复制包含Aside、Header、Main三个部分的布局&#xff0c;复制到 HomeView.vue 的布局中&#xff0c;即&#xff1a; 头部&#xff0c;我们可以左边放一个 l…