zoukankan      html  css  js  c++  java
  • 浏览器检测

    var client = function(){ 
     
        //呈现引擎 
        var engine = {             
            ie: 0, 
            gecko: 0, 
            webkit: 0, 
            khtml: 0, 
            opera: 0, 
         
            //完整的版本号 
            ver: null   
        }; 
     
        //浏览器 
        var browser = { 
             
            //主要浏览器 
            ie: 0, 
            firefox: 0, 
            safari: 0, 
            konq: 0, 
            opera: 0, 
           chrome: 0, 
         
            //具体的版本号 
            ver: null 
        }; 
     
     
        //平台、设备和操作系统 
        var system = { 
            win: false, 
            mac: false, 
            x11: false, 
             
            //移动设备 
            iphone: false, 
            ipod: false, 
            ipad: false, 
            ios: false, 
            android: false, 
            nokiaN: false, 
            winMobile: false, 
             
            //游戏系统 
            wii: false, 
            ps: false  
        };     
         
        //检测呈现引擎和浏览器 
        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); 
             
            //确定是 Chrome 还是 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 { 
                //近似地确定版本号 
                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 = RegExp["$1"]; 
            engine.ie = browser.ie = parseFloat(engine.ver); 
        } 
     
        //检测浏览器 
        browser.ie = engine.ie; 
        browser.opera = engine.opera; 
     
     
        //检测平台 
        var p = navigator.platform; 
        system.win = p.indexOf("Win") == 0; 
        system.mac = p.indexOf("Mac") == 0; 
        system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); 
     
        //检测 Windows 操作系统 
        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"]; 
                } 
            } 
        } 
     
        //移动设备 
        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"]); 
     
       } 
     
    } 
     
     
     
    //检测 iOS 版本 
     
    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; //不能真正检测出来,所以只能猜测 
     
     
    } 
     
    } 
     
     
    //检测 Android 版本 
     
    if (/Android (d+.d+)/.test(ua)){ 
     
     
     system.android = parseFloat(RegExp.$1); 
     
    } 
     
        //游戏系统 
        system.wii = ua.indexOf("Wii") > -1; 
        system.ps = /playstation/i.test(ua); 
     
        //返回这些对象 
        return { 
            engine:     engine, 
            browser:    browser, 
            system:     system         
        }; 
     
    }(); 
  • 相关阅读:
    golang-----giao起来
    Django-----你醒了吗?
    linux
    dapper之连接数据库(Oracle,SQL Server,MySql)
    mongodb 物理删除数据
    一生难得的偶遇
    奇怪的电话
    我的魔兽争霸
    第四章 吃饭
    第三章 百花谷
  • 原文地址:https://www.cnblogs.com/yunrundetizi/p/5794678.html
Copyright © 2011-2022 走看看