zoukankan      html  css  js  c++  java
  • 浏览器检测JS代码(兼容目前各大主流浏览器)

    var BrowserMatch = {
        init: function () {
            this.browser = this.getBrowser().browser || "An Unknown Browser";
            this.version = this.getBrowser().version || "An Unknown Version";
            this.OS = this.getOS() || "An Unknown OS";
        },
        getOS:function(){
            if(navigator.platform.indexOf("Win")!= -1) return "Windows";
            if(navigator.platform.indexOf("Mac")!= -1) return "Mac";
            if(navigator.platform.indexOf("Linux")!= -1) return "Linux";
            if(navigator.userAgent.indexOf("iPhone")!= -1) return "iPhone/iPod";
        },
        getBrowser:function () {
            var rMsie = /(msies|trident/7)([w.]+)/;
            var rTrident = /(trident)/([w.]+)/;
            var rFirefox = /(firefox)/([w.]+)/; 
            var rOpera = /(opera).+version/([w.]+)/;
            var rNewOpera = /(opr)/(.+)/;
            var rChrome = /(chrome)/([w.]+)/;
            var rSafari = /version/([w.]+).*(safari)/;
            var ua = navigator.userAgent.toLowerCase();
            var matchBS,matchBS2;
            matchBS = rMsie.exec(ua);
            if (matchBS != null) {
                matchBS2 = rTrident.exec(ua);
                if (matchBS2 != null){
                    switch (matchBS2[2]){
                        case "4.0": return { browser : "IE", version : "8" };break;
                        case "5.0": return { browser : "IE", version : "9" };break;
                        case "6.0": return { browser : "IE", version : "10" };break;
                        case "7.0": return { browser : "IE", version : "11" };break;
                        default:return { browser : "IE", version : "Undefined" };
                    }
                }else{
                    return {browser : "IE", version : matchBS[2] || "0" };
                }
            }
            matchBS = rFirefox.exec(ua);   
            if ((matchBS != null)&&(!(window.attachEvent))&&(!(window.chrome))&&(!(window.opera))) {   
                return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
            }
            matchBS = rOpera.exec(ua);                 
            if ((matchBS != null)&&(!(window.attachEvent))) {         
                return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
            }
            matchBS = rChrome.exec(ua);    
            if ((matchBS != null)&&(!!(window.chrome))&&(!(window.attachEvent))) {
                matchBS2 = rNewOpera.exec(ua);             
                if(matchBS2 == null){
                    return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
                }else{
                    return { browser : "Opera", version : matchBS2[2] || "0" };
                }    
            }
            matchBS = rSafari.exec(ua);                   
            if ((matchBS != null)&&(!(window.attachEvent))&&(!(window.chrome))&&(!(window.opera))) {      
                return { browser : matchBS[2] || "", version : matchBS[1] || "0" };
            }                      
        }
    };    
    BrowserMatch.init();

    调用方法:(首先得引入js文件,大家应该都懂的)

    获取浏览器名:BrowserMatch.browser;

    获取浏览器版本:BrowserMatch.version;

    获取所处操作系统:BrowserMatch.OS;

  • 相关阅读:
    阿里巴巴开源故障注入工具_chaosblade
    一步一步解决centos6.5配置无线网卡的问题
    python自动化测试三部曲之request+django实现接口测试
    python自动化测试三部曲之unittest框架
    python子类如何继承父类的实例变量?
    tp5.0 的 系统变量
    tp5.1 相同控制器不同方法session无法取出的问题
    php 常用自定义函数
    tp5.1 配置多个项目共用同一个核心库
    git LF 和 CRLF换行的问题
  • 原文地址:https://www.cnblogs.com/Sandon/p/5201460.html
Copyright © 2011-2022 走看看