js获取浏览器的版本信息

来源:互联网 发布:石川智晶 知乎 编辑:程序博客网 时间:2024/06/05 16:36
function getbrowserclient() {        //engine info        var engine = {            ie: 0,            gecko: 0,            webkit: 0,            khtml: 0,            opera: 0,            //full version number            ver: null        };        //browser info        var browser = {            ie: 0,            firefox: 0,            safari: 0,            konq: 0,            opera: 0,            chrome: 0,            //detail version number            ver: null        };        //platform, device and system        var system = {            win: false,            mac: false,            x11: false,            //mobile device            iphone: false,            ipod: false,            ipad: false,            ios: false,            android: false,            nokiaN: false,            winMobile: false,            //game system            wii: false,            ps: false        };        //check engine and browser        var ua = navigator.userAgent;        if (window.opera) {            engine.ver = browser.ver = window.opera.version();            engine.opera = browser.opera = parseFloat(engine.ver);        } else if (/AppleWebKit\/(\S+)/.test(ua)) {            engine.ver = RegExp['$1'];            engine.webkit = parseFloat(engine.ver);            //make sure whether chrome or safari            if (/Chrome\/(\S+)/.test(ua)) {                browser.ver = RegExp['$1'];                browser.chrome = parseFloat(browser.ver);            } else if (/Version\/(\S+)/.test(ua)) {                browser.ver = RegExp['$1'];                browser.safari = parseFloat(browser.ver);            } else {                //approximately sure the version number                var safariVersion = 1;                if (engine.webkit < 100) {                    safariVersion = 1;                } else if (engine.webkit < 312) {                    safariVersion = 1.2;                } else if (engine.webkit < 412) {                    safariVersion = 1.3;                } else {                    safariVersion = 2;                }                browser.safari = browser.ver = safariVersion;            }        } else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)) {            engine.ver = browser.ver = RegExp['$1'];            engine.khtml = browser.konq = parseFloat(engine.ver);        } else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)) {            engine.ver = RegExp['$1'];            engine.gecko = parseFloat(engine.ver);            //make sure whether Firefox            if (/Firefox\/(\S+)/.test(ua)) {                browser.ver = RegExp['$1'];                browser.firefox = parseFloat(browser.ver);            }        } else if (/MSIE ([^;]+)/.test(ua)) {            engine.ver = browser.ver = RegExp['$1'];            engine.ie = browser.ie = parseFloat(engine.ver);        }        browser.ie = engine.ie;        browser.opera = engine.opera;        //check platform        var p = navigator.platform;        system.win = p.indexOf('Win') == 0;        system.mac = p.indexOf('Mac') == 0;        system.x11 = (p == 'X11') || (p.indexOf('Linux') == 0);        //check window system        if (system.win) {            if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) {                if (RegExp['$1'] == 'NT') {                    switch (RegExp['$2']) {                        case '5.0':                            system.win = '2000';                            break;                        case '5.1':                            system.win = 'XP';                            break;                        case '6.0':                            system.win = 'Vista';                            break;                        case '6.1':                            system.win = '7';                            break;                        default:                            system.win = 'NT';                            break;                    }                } else if (RegExp['$1'] == '9x') {                    system.win = 'ME';                } else {                    system.win = RegExp['$1'];                }            }        }        //mobile device        system.iphone = ua.indexOf('iPhone') > -1;        system.ipad = ua.indexOf('iPad') > -1;        system.ipod = ua.indexOf('iPod') > -1;        system.nokiaN = ua.indexOf('NokiaN') > -1;        //window mobile        if (system.win == 'CE') {            system.winMobile = system.win;        } else if (system.win == 'Ph') {            if (/Windows Phone OS (\d+.\d+)/.test(ua)) {                system.win = 'Phone';                system.winMobile = parseFloat(RegExp['$1']);            }        }        //check ios version        if (system.mac && ua.indexOf('Mobile') > -1) {            if (/CPU (?:iPhone )?OS (\d+_\d+)/.test(ua)) {                system.ios = parseFloat(RegExp.$1.replace('_', '.'));            } else {                system.ios = 2; //can't check, give temp            }        }        //check android version        if (/Android (\d+\.\d+)/.test(ua)) {            system.android = parseFloat(RegExp.$1);        }        //game system         system.wii = ua.indexOf('Wii') > -1;        system.ps = /playstation/i.test(ua);        return {            engine: engine,            browser: browser,            system: system        };    }
0 0
原创粉丝点击