Full user agent string detection

var Client = function () { 

    // rendering engine 
    var Engine = {             
        IE: 0 , 
        Gecko: 0 , 
        WebKit: 0 , 
        KHTML: 0 , 
        Opera: 0 , 

        // full version 
        Ver: null   
    }; 
    
    // browser 
    var browser = { 
        
        // primary browser 
        IE: 0 , 
        Firefox: 0 , 
        Safari: 0 , 
        konq: 0  ,
        Opera: 0 , 
        Chrome: 0 , 

        // specific version 
        Ver: null 
    }; 

    
    // platforms, devices, and operating systems 
    var System = { 
        win: to false , 
        MAC: to false , 
        X11: to false , 
        
        // mobile device 
        iPhone: to false , 
        iPod: false , 
        ipad: false , 
        ios: false , 
        Android: false , 
        Nokian: false ,
        WinMobile:to false , 
        
        // game system 
        Wii: to false , 
        PS: to false  
    };     

    // detection rendering engine, and browser 
    var UA = the navigator.userAgent;    
     IF (window.opera) { 
        engine.ver = browser.ver = window.opera.version (); 
        engine.opera = browser.opera = parseFloat (engine.ver); 
    } the else  IF (/ AppleWebKit \ / (\ S +) / .test (UA)) { 
        engine.ver = the RegExp [ "$. 1" ]; 
        Engine .webkit = parseFloat (engine.ver); 
        
        // determine whether or Chrome, Safari 
        IF (/ Chrome \ / (\ S +) / .test (UA)) { 
            browser.ver = the RegExp [ "$. 1" ]; 
            browser.chrome = parseFloat (browser.ver); 
        } the else  IF (/ version \ / (\ S +) / .test (UA)) { 
            browser.ver = the RegExp [ "$. 1" ]; 
            browser.safari = parseFloat (browser.ver); 
        } the else {
             // approximation to determine 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);
        
        //确定不是 Firefox
        if (/Firefox\/(\S+)/.test(ua)){
            browser.ver = RegExp["$1"];
            browser.firefox = parseFloat(browser.ver);
        }
    } else if (/MSIE ([^;]+)/.test(ua)){    
        engine.ver Browser.ver the RegExp = = [ "$. 1" ]; 
        engine.ie = browser.ie = parseFloat (engine.ver); 
    } 
    
    // detector browser 
    browser.ie = engine.ie; 
    browser.opera = engine.opera; 
    

    / / detect internet 
    var P = navigator.platform; 
    system.win = p.indexOf ( "Win") == 0 ; 
    system.mac = p.indexOf ( "the Mac") == 0 ; 
    system.x11 = (P == "X11") || (p.indexOf ( "Linux") == 0 ); 

    // Windows operating system detects 
    IF (system.win) {
         IF (/ Win (:? dows)? ([^ do] {2 }) \ S? (\ + D \. \ D +)? / .
            test (among other things)) { 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"];
            }
        }
    }
    
    //移动设备
    system.iphone = ua.indexOf("iPhone") > -1;
    system.ipod = ua.indexOf("iPod") > -1;
    system.ipad = ua.indexOf("iPad") > -1;
    system.nokiaN = ua.indexOf("NokiaN") > -1;
    
    //windows 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"]); 
        } 
    } 
    
    
    // detect iOS version 
    IF (system.mac ua.indexOf && ( "Mobile")> -1 ) {
         IF ? (? / The CPU (: the iPhone) the OS (\ + D _ \ + D) / . Test (UA)) { 
            system.ios = parseFloat ($ 1.replace the RegExp ( "_",. "." )); 
        } the else { 
            system.ios = 2;   // can not really be detected, so only guess 
        } 
    } 
    
    // detecting Android version 
    IF (/ Android (\ + D \ \ + D) /. .test (UA)) { 
        system.android = parseFloat (the RegExp $. 1. ); 
    } 
    
    // game system
    = ua.indexOf system.wii ( "the Wii")> -1 ; 
    system.ps = / PlayStation / i.test (UA); 
    
    // return those objects 
    return { 
        Engine: Engine, 
        Browser: Browser, 
        System: System         
    }; 

} ();

 

Guess you like

Origin www.cnblogs.com/xianxiaoan/p/11106451.html