메인스트림(MainStream) 브라우저 유형 및 버전 식별

메인스트림(MainStream) 브라우저(IE, Opera, Chrome, Firefox, Safari의 유형과 버전)를 탐지하고 코드를 구체적으로 보며 문제가 있으면 메시지를 남겨주세요.
var Browser = (function(window) {
    var agent = window.navigator.userAgent;
    var IE10 = 'IE10'; //IE10   
    var IE11 = 'IE11';
    var Edge = 'Edge';
    var Opera = 'Opera';
    var Chrome = 'Chrome';
    var Firefox = 'Firefox';
    var Safari = 'Safari';
    var System = {
        type: '',
        version: '',
        getIe10Version: function() {
            try {
                return agent.match(/MSIE ([\d.]+)/)[1] || '0';
            } catch (e) {
                console.log(e);
                return '0';
            }
        },
        operaVersion: function() {
            try {
                if (agent.indexOf('Opera') > -1) {
                    return agent.match(/Opera.([\d.]+)/)[1];
                } else {
                    return agent.match(/OPR\/([\d.]+)/)[1];
                }
            } catch (e) {
                console.log(e);
                return 0;
            }
        },
        //  :version  . 31.0.252.152    31.0
        versionFilter: function() {
            if (arguments.length === 1 && typeof arguments[0] === 'string') {
                var version = arguments[0];
                var start, end;
                start = version.indexOf('.');
                if (start > 0) {
                    end = version.indexOf('.', start + 1);
                    if (end !== -1) {
                        return version.substr(0, end);
                    }
                }
                return version;
            } else if (arguments.length === 1) {
                return arguments[0];
            }
            return 0;
        },
    };

    try {
        //        
        if (/MSIE/.test(agent)) {
            System.type = IE10;
        } else if (/rv:([\d.]+)\) like gecko/.test(agent.toLowerCase())) {
            System.type = IE11;
        } else if (agent.indexOf('Edge') > -1) {
            System.type = Edge;
        } else if (agent.indexOf('Opera') > -1 || agent.indexOf('OPR') > -1) {
            System.type = Opera;
        } else if (agent.indexOf('Chrome') > -1 && agent.indexOf('Safari') > -1) {
            System.type = Chrome;
        } else if (agent.indexOf('Safari') > -1 && agent.indexOf('Chrome') === -1) {
            System.type = Safari;
        } else if (agent.indexOf('Firefox') > -1) {
            System.type = Firefox;
        } else {
            System.type = 'unknow';
        }
        //    
        switch (System.type) {
            case IE10:
                System.version = System.getIe10Version();
                break;
            case IE11:
                System.version = '11';
                break;
            case Edge:
                System.version = 'edge';
                break;
            case Firefox:
                System.version = agent.match(/Firefox\/([\d.]+)/)[1];
                break;
            case Chrome:
                System.version = agent.match(/Chrome\/([\d.]+)/)[1];
                break;
            case Opera:
                System.version = System.operaVersion();
                break;
            case Safari:
                System.version = agent.match(/Version\/([\d.]+)/)[1];
                break;
            default:
                System.version = '0';
        }
        System.version = System.versionFilter(System.version);
        console.log(System.type,System.version);
    } catch (e) {
        console.log(e);
    }
})(window);

좋은 웹페이지 즐겨찾기