• 判断浏览器版本及浏览器类型


    //浏览器检测
    (function(){
        window.sys = {};            //让外部可以访问
        var ua = navigator.userAgent.toLowerCase(); //保存浏览器信息字符串并都转换成小写字母
        var s = null;
    
        alert(ua);
        //alert(ua.match(/msie\s([\d.]+)/));    //查找匹配的字符串没有g并且还要返回园括号中的内容
        //alert(ua.match(/chrome\/([\d.]+)/));    //查找匹配的字符串没有g并且还要返回园括号中的内容
        //alert(ua.match(/version\/([\d.]+).*safari/));
    
        //IE浏览器
        if((/msie\s([\d.]+)/).test(ua)){
            s = ua.match(/msie\s([\d.]+)/);
            sys.ie = s[1];
        }
        //chrome浏览器
        if((/chrome\/([\d.]+)/).test(ua)){
            s = ua.match(/chrome\/([\d.]+)/);
            sys.chrome = s[1];
        }
        //firefox浏览器
        if((/firefox\/([\d.]+)/).test(ua)){
            s = ua.match(/firefox\/([\d.]+)/);
            sys.firefox = s[1];
        }
        //opera浏览器
        if((/opera\/.*version\/([\d.]+)/).test(ua)){
            s = ua.match(/opera\/.*version\/([\d.]+)/);
            sys.opera = s[1];
        }
        //safari浏览器
        if((/version\/([\d.]+).*safari/).test(ua)){
            s = ua.match(/version\/([\d.]+).*safari/);
            sys.safari = s[1];
        }
    })();
    alert(sys.ie);
    View Code

     使用方法:

    if(sys.ie){
        alert('这是IE'+sys.ie+'浏览器');
    }else if(sys.chrome){
        alert('这是chrome'+sys.chrome+'浏览器');
    }else if(sys.firefox){
        alert('这是firefox'+sys.firefox+'浏览器');
    }else if(sys.opera){
        alert('这是opera'+sys.opera+'浏览器');
    }else if(sys.safari){
        alert('这是safari'+sys.safari+'浏览器');
    }

     利用三目的原理我们可以把兼容代码简写

    //浏览器检测
    (function(){
        window.sys = {};            //让外部可以访问
        var ua = navigator.userAgent.toLowerCase(); //保存浏览器信息字符串并都转换成小写字母
        var s = null;
    
        //alert(ua);
        //alert(ua.match(/msie\s([\d.]+)/));    //查找匹配的字符串没有g并且还要返回园括号中的内容
        //alert(ua.match(/chrome\/([\d.]+)/));    //查找匹配的字符串没有g并且还要返回园括号中的内容
        //alert(ua.match(/version\/([\d.]+).*safari/));
    /*
        //IE浏览器
        if((/msie\s([\d.]+)/).test(ua)){
            s = ua.match(/msie\s([\d.]+)/);
            sys.ie = s[1];
        }
        //chrome浏览器
        if((/chrome\/([\d.]+)/).test(ua)){
            s = ua.match(/chrome\/([\d.]+)/);
            sys.chrome = s[1];
        }
        //firefox浏览器
        if((/firefox\/([\d.]+)/).test(ua)){
            s = ua.match(/firefox\/([\d.]+)/);
            sys.firefox = s[1];
        }
        //opera浏览器
        if((/opera\/.*version\/([\d.]+)/).test(ua)){
            s = ua.match(/opera\/.*version\/([\d.]+)/);
            sys.opera = s[1];
        }
        //safari浏览器
        if((/version\/([\d.]+).*safari/).test(ua)){
            s = ua.match(/version\/([\d.]+).*safari/);
            sys.safari = s[1];
        }
    */
        (s = ua.match(/msie\s([\d.]+)/)) ? sys.ie = s[1]:
        (s = ua.match(/chrome\/([\d.]+)/)) ? sys.chrome = s[1]:
        (s = ua.match(/firefox\/([\d.]+)/)) ? sys.firefox = s[1]:
        (s = ua.match(/opera\/.*version\/([\d.]+)/)) ? sys.opera = s[1]:
        (s = ua.match(/version\/([\d.]+).*safari/)) ? sys.safari = s[1]:0;
    })();
    View Code

    (是否为真) ? L1 : L2

    当为真时执行L1,为假是执行L2

    L2也可以是判断

    (是否为真) ? L1 : (是否为真) ? K1 : K2

    当第二个为真时执行K1,为假是执行K2

    以此类推最后得出

    (是否为真) ? L1 :

    (是否为真) ? K1 :

    (是否为真) ? J1 : 0;

  • 相关阅读:
    rider中的gitbash如何从上次退出的目录启动
    docker swarm外部验证负载均衡时不生效
    css做一个可以变成关闭图标的菜单按钮
    mac外接键盘HOME,END键问题
    kubernetes实践录 使用Baget部署一个私有Nuget仓库
    C#中正确的实现IDisposable接口以释放非托管资源
    网络磁盘nfs使用笔记
    EFCore分组查询(GroupBy)后获取第一个元素
    Angular踩坑ExpressionChangedAfterItHasBeenCheckedError异常
    写了个适用于vscode的minio图床客户端插件 vscodeminiopicman
  • 原文地址:https://www.cnblogs.com/BobSky/p/3116718.html
Copyright © 2020-2023  润新知