0
点赞
收藏
分享

微信扫一扫

js获取浏览器信息

艾晓雪 2022-03-11 阅读 109

    //实现函数如下所示
    function getBrowser(n) {
        var ua = navigator.userAgent.toLowerCase(),
            s,
            name = '',
            ver = 0;
        //探测浏览器
        (s = ua.match(/msie ([\d.]+)/)) ? _set("ie", _toFixedVersion(s[1])) :
            (s = ua.match(/firefox\/([\d.]+)/)) ? _set("firefox", _toFixedVersion(s[1])) :
                (s = ua.match(/chrome\/([\d.]+)/)) ? _set("chrome", _toFixedVersion(s[1])) :
                    (s = ua.match(/opera.([\d.]+)/)) ? _set("opera", _toFixedVersion(s[1])) :
                        (s = ua.match(/version\/([\d.]+).*safari/)) ? _set("safari", _toFixedVersion(s[1])) : 0;
        if (name != 'ie') { //ie的特殊判断逻辑
            var ieFlag = isIE();
            if (ieFlag) {
                _set('ie', IEVersion());
            }

        }
        /**
         * 解析浏览器版本号
         */
        function _toFixedVersion(ver, floatLength) {
            ver = ('' + ver).replace(/_/g, '.');
            floatLength = floatLength || 1;
            ver = String(ver).split('.');
            ver = ver[0] + '.' + (ver[1] || '0');
            ver = Number(ver).toFixed(floatLength);
            return ver;
        };
        /**
         * 处理浏览器名和版本
         */
        function _set(bname, bver) {
            name = bname;
            ver = bver;
        };
        /**
         * IE 需要特殊逻辑判断
         */
        function isIE() {
            if (!!window.ActiveXObject || "ActiveXObject" in window) {
                return true;
            } else {
                return false;
            }
        };
        /**
         * IE 需要处理版本
         */
        function IEVersion() {
            var rv = -1;
            if (navigator.appName == 'Microsoft Internet Explorer') {
                var ua = navigator.userAgent;
                var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
                if (re.exec(ua) != null) {
                    rv = parseFloat(RegExp.$1);
                }
            } else if (navigator.appName == 'Netscape') {
                var ua = navigator.userAgent;
                var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
                if (re.exec(ua) != null) {
                    rv = parseFloat(RegExp.$1);
                }
            }
            return rv;
        };
		if(ua.indexOf('edge')>-1){
			ours.browser.edge = ua.substring(ua.indexOf('edge')+5);
			ours.browser.isEdge = true;
		}
        return (n == 'n' ? name : (n == 'v' ? ver : name + ver));
    }
举报

相关推荐

0 条评论