用Javascript判断访问来源操作系统, 设备, 浏览器类型

 var browser = {
    os : function() {
      var u = navigator.userAgent;
      return {// 操作系统
        linux: !!u.match(/\(X11;( U;)? Linux/i), // Linux
        windows: !!u.match(/Windows/i), // Windows
        android: !!u.match(/Android/i), // Android
        iOS: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // iOS
      };
    }(),
    device : function() {
      var u = navigator.userAgent;
      return {// 设备
        mobile: !!u.match(/AppleWebKit/i), // mobile
        iPhone: !!u.match(/iPhone/i), // iPhone
        iPad: !!u.match(/iPad/i), // iPad
      };
    }(),
    supplier : function() {
      var u = navigator.userAgent;
      return {// 浏览器类型
        qq: !!u.match(/QQ\/\d+/i), // QQ
        wechat: !!u.match(/MicroMessenger/i), // WeChat
      };
    }(),
    language: (navigator.browserLanguage || navigator.language).toLowerCase()
  };

  if (!browser.supplier.wechat) {
    alert("not in wechat");
  }
  if (!browser.supplier.qq) {
    alert("not in qq");
  }
<script type="text/javascript">
var browser={    
versions:function(){            
var u = navigator.userAgent, app = navigator.appVersion;            
return {                
trident: u.indexOf('Trident') > -1, //IE内核                
presto: u.indexOf('Presto') > -1, //opera内核                
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核                
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核                
mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端                
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端                
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                
iPad: u.indexOf('iPad') > -1, //是否iPad                
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部            
};
}()
} 

document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
document.writeln(" android终端: "+browser.versions.android);
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent); 
</script>
function detectOS() { 
 var result="";
        debugger
        var sUserAgent = navigator.userAgent;

        var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
        var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
        var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
        var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
        var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";
        if (isMac) {
            result= "Mac";
        }
        else if (isUnix) {
            result= "Unix";
        }
        else if (isLinux) {
                result= "Linux";
        }
        else if(bIsAndroid) {
            result= "Android";
        }
       else if (isWin) {
            var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
            var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
            var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
            var isWinVista= sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
            var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
            var isWin10 = sUserAgent.indexOf("Windows NT 10.0") > -1 || sUserAgent.indexOf("Windows 10") > -1;
            if (isWin2K) {
                result= "Win2000";
            }
            else if (isWinXP) {
                result= "WinXP";
            }
            else if (isWin2003){
                result= "Win2003";
            }
            else if (isWinVista) {
                result= "WinVista";
            }
            else if (isWin7){
                result= "Win7";
            } else if (isWin10){
                result= "Win10";
            }else{
                result= "Windows";
            }
        }else {
            result= "other";
        }
        alert(result);
        return result;
} 
//遨游浏览器
    function checkMaxthon() {
        var result = false;
        var list = [];
        for (var key in navigator.plugins) {
            // 遨游浏览器只有五个一致的plugins
            if (!!navigator.plugins[key].filename) {
                list.push(navigator.plugins[key].filename);
            }
        }
        if(list.length == 5){
            result = true;
        }else {
            result = false;
        }
        return result;
    }
    //360浏览器(极速内核)
     function check360() {
        // var result = false;
        // for (var key in navigator.plugins) {
        //     // np-mswmp.dll只在360浏览器下存在
        //     if (navigator.plugins[key].filename == 'internal-nacl-plugin') {
        //         return !result;
        //     }
        // }
        // return result;

         var mime_types = navigator.mimeTypes;
         for (var i = 0; i < mime_types.length; i++) {
             console.log(mime_types[i].type);
             if (mime_types[i].type.indexOf('360')>0)      return true;
         }
         return false;
    }

    //遨游浏览器
     function checkMaxthon() {
        var result = false;
        var list = [];
        for (var key in navigator.plugins) {
            // 遨游浏览器只有五个一致的plugins
            if (!!navigator.plugins[key].filename) {
                list.push(navigator.plugins[key].filename);
            }
        }
        if(list.length == 5){
            result = true;
        }else {
            result = false;
        }
        return result;
    }

    //获取当前的浏览器
     function getBrowser() {
        // 获取浏览器 userAgent
        var ua = navigator.userAgent;
        // 是否为 Opera
        var isOpera = ua.indexOf('opr') > -1
        // 返回结果
        if (isOpera) { return 'Opera' }

        // 是否为 IE
        var isIE = (ua.indexOf('compatible') > -1) && (ua.indexOf('MSIE') > -1) && !isOpera
        var isIE11 = (ua.indexOf('Trident') > -1) && (ua.indexOf("rv:11.0") > -1)
        // 返回结果
        if (isIE11) { return 'IE11'
        } else if (isIE) {
            // 检测是否匹配
            var re = new RegExp('MSIE (\\d+\\.\\d+);')
            re.test(ua)
            // 获取版本
            var ver = parseFloat(RegExp["$1"])
            // 返回结果
            if (ver == 7) { return 'IE7'
            } else if (ver == 8) { return 'IE8'
            } else if (ver == 9) { return 'IE9'
            } else if (ver == 10) { return 'IE10'
            } else { return "IE" }
        }

        //console.log(ua);
        // 是否为 Edge
        var isEdge = ua.indexOf("Edg") > -1
        // 返回结果
        if (isEdge) { return 'Edge' }

        // 是否为 Firefox
        var isFirefox = ua.indexOf("Firefox") > -1
        // 返回结果
        if (isFirefox) { return 'Firefox' }

        // 是否为 Safari
        var isSafari = (ua.indexOf("Safari") > -1) && (ua.indexOf("Chrome") == -1)
        // 返回结果
        if (isSafari) { return "Safari" }
 
        // 是否为 Chrome
        var isChrome = (ua.indexOf("Chrome") > -1) && (ua.indexOf("Safari") > -1) && (ua.indexOf("Edge") == -1) && (ua.indexOf("QQBrowser") == -1) && (ua.indexOf("2345Explorer") == -1) && (check360() == false) && (checkMaxthon() == false)
        // 返回结果
        if (isChrome) { return '谷歌浏览器' }

        // 是否为 QQ
        var isQQ = ua.indexOf("QQBrowser") > -1
        // 返回结果
        if (isQQ) { return 'QQ浏览器' }

        // 是否为傲游浏览器
        var isMaxthon = checkMaxthon()
        // 返回结果
        if (isMaxthon) { return '傲游浏览器' }

        // 是否为搜狗浏览器
        var isMaxthon = ua.indexOf("se 2.x") > -1
        // 返回结果
        if (isMaxthon) { return '搜狗浏览器' }

        // 是否为2345浏览器
        var is2345Explorer = uaua.indexOf("2345Explorer") > -1;
        // 返回结果
        if(is2345Explorer){
            return '2345浏览器';
        }

        var is360 = check360() && (ua.indexOf("Safari") > -1)
        if(is360){return '360浏览器'}

        // 都不是
        return '其他'
    }

浏览器名称

console.log(navigator.appCodeName);
次版本信息

console.log(navigator.appMinorVersion);
完整的浏览器名称

console.log(navigator.appName);
浏览器版本

console.log(navigator.appVersion);
浏览器编译版本

console.log(navigator.buildID);
是否启用cookie

console.log(navigator.cookieEnabled);
客户端计算机CPU类型

console.log(navigator.cpuClass);
浏览器是否启用java

console.log(navigator.javaEnabled());
浏览器主语言

console.log(navigator.language);
浏览器中注册的MIME类型数组

console.log(navigator.mimeTypes);
是否连接到网络

console.log(navigator.onLine);
客户端计算机操作系统或者CPU

console.log(navigator.oscpu);
浏览器所在的系统平台

console.log(navigator.platform);
浏览器中插件信息数组

console.log(navigator.plugins);
产品名称

console.log(navigator.product);
产品的次要信息

console.log(navigator.productSub);
操作系统的语言

console.log(navigator.systemLanguage);
浏览器的用户代理字符串

console.log(navigator. userAgent);
操作系统默认语言

console.log(navigator.userLanguage);
用户个人信息对象

console.log(navigator.userProfile);
浏览器品牌

console.log(navigator.vendor);
浏览器供应商次要信息

console.log(navigator.vendorSub);
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值