javascript用户代理检测

本文介绍了一个用于检测浏览器类型及版本的JavaScript脚本。该脚本能够识别多种浏览器,包括IE、Firefox、Chrome、Safari等,并能判断所使用的操作系统及设备类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript">
var client = function(){
        //呈现引擎
        var engine = {
                ie: 0,
                gecko: 0,
                webkit: 0,
                khtml: 0,
                opera: 0,

                //完整的版本号
                ver: null
        };

        // 浏览器
        var browser = {
                //主要浏览器
                ie: 0,
                firefox: 0,
                konq: 0,
                chrome: 0,
                safari: 0,

                // 具体版本号
                ver: null
        };

        // 平台、设备和操作系统
        var system = {
                win: false,
                mac: false,
                x11: false,

                // 移动设备
                iphone: false,
                ipod: false,
                nokiaN: false,
                winMobile: false,
                macMobile: 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);

                // 确定是 Chrmoe 还是 Safari
                if(/Chrmoe\/(\S+)/.test(ua)){
                        browser.ver = RegExp["$1"];
                        browser.chrome = parseFloat(browser.ver);
                } else if(/Version\/(\S+)/.test(ua)){
                        browser.ver = RegExp["$1"];
                        browser.safri = 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) || /Knoqueror\/([^;]+)/.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";
                                                brreak;
                                        case "5.1":
                                                system.win = "xp";
                                                break;
                                        case "6.0":
                                                system.win = "Vista";
                                                break;
                                        case "6.1":
                                                system.win = " Win7";
                                                break;
                                        default:
                                                system.win = "NT";
                                                break;
                                }
                        } else if (RegExp["$1"]){
                                system.wein = "ME";
                        } else {
                                system.win = RegExp["$1"];
                        }
                }
    }  

        // 移动设备
        system.iphone = ua.indexOf("iPhone") >  -1;
        system.ipod = ua.indexOf("iPod") > -1;
        system.nokiaN = ua.indexOf("NokiaN") > -1;
        system.winMobile = (system.win == "CE");
        system.macMobile = (system.iphone || system.ipod);

        // 游戏系统
        system.wii = ua.indexOf("Wii") > -1;
        system.ps = /playstation/i.test(ua);

        // 返回这些对象
        return {
                engine: engine,
                browser: browser,
                system: system
        };
}();

if (client.browser.ie == "0"){
        alert("请选择使用IE浏览器!");
} else {
        alert("您现在使用的是IE浏览器");
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值