zoukankan      html  css  js  c++  java
  • JS判断客户浏览器是否是IE8浏览器、jQuery判断浏览器内核

      今天在使用encharts的时候由于要兼容IE8,所以最终决定在非IE8浏览器使用encharts,在IE8使用amcharts。于是需要使用JS判断使用的浏览器版本:

    function IEVersion() {
                var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
                var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器  
                var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器  
                var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
                if(isIE) {
                    var reIE = new RegExp("MSIE (\d+\.\d+);");
                    reIE.test(userAgent);
                    var fIEVersion = parseFloat(RegExp["$1"]);
                    if(fIEVersion == 7) {
                        return 7;
                    } else if(fIEVersion == 8) {
                        return 8;
                    } else if(fIEVersion == 9) {
                        return 9;
                    } else if(fIEVersion == 10) {
                        return 10;
                    } else {
                        return 6;//IE版本<=7
                    }   
                } else if(isEdge) {
                    return 'edge';//edge
                } else if(isIE11) {
                    return 11; //IE11  
                }else{
                    return -1;//不是ie浏览器
                }
            }

    返回值类型:

    值类型 值说明
    -1 Number  不是ie浏览器
    6 Number ie版本<=6
    7 Number ie7
    8 Number ie8
    9 Number ie9
    10 Number ie10
    11 Number ie11
    'edge' String ie的edge浏览器

    通过进一步的封装可以返回boolean值类型是否是IE8以下浏览器:

        function IEVersion() {
            var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
            var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器  
            var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器  
            var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
            if (isIE) {
                var reIE = new RegExp("MSIE (\d+\.\d+);");
                reIE.test(userAgent);
                var fIEVersion = parseFloat(RegExp["$1"]);
                if (fIEVersion == 7) {
                    return 7;
                } else if (fIEVersion == 8) {
                    return 8;
                } else if (fIEVersion == 9) {
                    return 9;
                } else if (fIEVersion == 10) {
                    return 10;
                } else {
                    return 6; //IE版本<=7
                }
            } else if (isEdge) {
                return 'edge'; //edge
            } else if (isIE11) {
                return 11; //IE11  
            } else {
                return -1; //不是ie浏览器
            }
        }
        var sureIsIEAndLower8 = function() {
            var version = IEVersion();
            if (-1 == version) {
                return false;
            } else if (8 < version || "edge" == version) {
                return false;
            }else{
                return true;
            }
        }

    返回true表示是IE8以及IE8以下浏览器,返回false表示不是IE或者是IE8以上。

    补充今天在翻阅jQueryAPI的时候发现jQuery自带检测浏览器内核的方法:

    例如我的测试:

            alert( JSON.stringify($.browser));
            alert( $.browser.version );

    结果:

    chrome:

    IE11:WC--IE11用的火狐的引擎

    :

    IE10:(microsoft internet explorer

    火狐:

  • 相关阅读:
    Linux TCP/IP 连接查看和问题解决
    Linux Tomcat 7.0 管理员登录时"401 Unauthorized" 问题解决方法
    Tomcat 性能监控工具jvisualvm, JConsole
    Tomcat 实战-调优方案
    Linux Tomcat8 访问管理页面 403 Access Denied
    docker redis
    Spring Boot 定时任务
    Nginx rewrite使用
    五 python 发送邮件
    关于注解继承性的一个例子
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/9529317.html
Copyright © 2011-2022 走看看