识别浏览器方法

获取浏览器的类型、版本及操作系统信息

敬上代码,抛砖引玉

var browserInfo = function() {
    var NT = {
        ‘4.90‘: ‘Windows ME‘,
        ‘4.0‘: ‘Windows NT‘,
        ‘5.0‘: ‘Windows 2000‘,
        ‘5.01‘: ‘Windows 2000 SP1‘,
        ‘5.1‘: ‘Windows XP‘,
        ‘5.2‘: ‘Windows XP 64-bit / Windows Server 2003‘,
        ‘6.0‘: ‘Windows Vista / Windows Server 2008‘,
        ‘6.1‘: ‘Windows 7 / Windows Server 2008 R2‘,
        ‘6.2‘: ‘Windows 8‘,
        ‘6.3‘: ‘Windows 8.1‘,
        ‘6.4‘: ‘Windows 10 Technical Preview‘,
        ‘10.0‘: ‘Windows 10‘
    }
    var userAgent = navigator.userAgent.toLowerCase();
    var platform = navigator.platform;
    var browserName = /(msie\s|trident.*rv:)([\w.]+)/.test(userAgent) ? ‘Internet Explorer‘: (window.opera && window.opera.version ? ‘Opera‘: ((userAgent.indexOf(‘edge‘) > -1) ? ‘Microsoft Edge‘: ((userAgent.indexOf(‘chrome‘) > -1) ? ‘Chrome‘: ((userAgent.indexOf("firefox") > -1) ? ‘Firefox‘: (userAgent.indexOf(‘safari‘) > -1 ? ‘Safari‘: ‘Unknown‘)))));
    var browserVersion = browserName == ‘Internet Explorer‘ ? (userAgent.indexOf(‘rv:‘) > -1 ? userAgent.match(/rv:[\d.]+/gi)[0].replace(‘rv:‘, ‘‘) : userAgent.match(/msie\s[\d.]+/gi)[0].replace(‘msie ‘, ‘‘)) : (browserName == ‘Microsoft Edge‘ ? userAgent.match(/edge\/[\d.]+/gi)[0].replace(‘edge/‘, ‘‘) : (browserName == ‘Firefox‘ ? userAgent.match(/firefox\/[\d.]+/gi)[0].replace(‘firefox/‘, ‘‘) : (browserName == ‘Chrome‘ ? userAgent.match(/chrome\/[\d.]+/gi)[0].replace(‘chrome/‘, ‘‘) : (browserName == ‘Safari‘ ? userAgent.match(/safari\/[\d.]+/gi)[0].replace(‘safari/‘, ‘‘) : ‘Unknown‘))));
    var browserEdition = browserVersion.split(‘.‘)[0];
    var kernelName = userAgent.indexOf(‘trident‘) > -1 ? ‘Trident‘: userAgent.indexOf(‘edge‘) > -1 ? ‘Edge‘: (((userAgent.indexOf(‘applewebkit‘) > -1) ? ‘Webkit‘: ((userAgent.indexOf(‘gecko‘) > -1) ? ‘Gecko‘: ‘Unknown‘)));
    var kernelVersion = kernelName == ‘Trident‘ ? (userAgent.match(/Trident\/[\d.]+/gi)[0].replace(‘Trident/‘, ‘‘)) : (browserName == ‘Firefox‘ ? userAgent.match(/gecko\/[\d.]+/gi)[0].replace(‘gecko/‘, ‘‘) : ((browserName == ‘Chrome‘ || browserName == ‘Safari‘) ? userAgent.match(/applewebkit\/[\d.]+/gi)[0].replace(‘applewebkit/‘, ‘‘) : (browserName == ‘Microsoft Edge‘ ? userAgent.match(/edge\/[\d.]+/gi)[0].replace(‘edge/‘, ‘‘) : ‘Unknown‘)));
    var kernelEdition = kernelVersion.split(‘.‘)[0];
    var osName = userAgent.indexOf(‘android‘) > -1 ? ‘Android‘: (userAgent.indexOf(‘ipad‘) > -1 ? ‘iOS(iPad)‘: (userAgent.indexOf(‘iphone‘) > -1 ? ‘iOS(iPhone)‘: userAgent.indexOf(‘windows phone‘) > -1 ? ‘Windows Phone‘: (((platform == "Win32") || (platform == "Windows") ? ‘Microsoft Windows‘: (navigator.platform == "Mac68K") || ((navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel") ? ‘Apple Mac‘: ‘Unknown‘)))));
    var osEdition = osName == ‘Android‘ ? userAgent.match(/android\s[\d.]+/gi)[0].replace(‘android ‘, ‘‘) : ((osName == ‘iOS(iPad)‘ || osName == ‘iOS(iPhone)‘) ? userAgent.match(/os\s[\d_]+/gi)[0].replace(‘os ‘, ‘‘).replace(‘_‘, ‘.‘) : (osName == ‘Windows Phone‘ ? userAgent.match(/windows\sphone\s[\d.]+/gi)[0].replace(‘windows phone ‘, ‘‘).replace(‘_‘, ‘.‘) : (osName == ‘Microsoft Windows‘ ? (NT[userAgent.match(/windows\snt\s[\d.]+/gi)[0].replace(‘windows nt ‘, ‘‘)] ? NT[userAgent.match(/windows\snt\s[\d.]+/gi)[0].replace(‘windows nt ‘, ‘‘)] : ‘Unknown‘) : ‘Unknown‘)));
    return {
        browser: {
            name: browserName,
            edition: browserEdition,
            version: browserVersion
        },
        kernel: {
            name: kernelName,
            edition: kernelEdition,
            version: kernelVersion
        },
        os: {
            name: osName,
            edition: osEdition
        }
    };
  }

原文地址:https://www.cnblogs.com/zhou195/p/9267890.html

时间: 2024-08-30 03:45:18

识别浏览器方法的相关文章

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法(非原创)

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 wi

{转}div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 wi

Http客户端识别的方法

Http用户识别的机制方法分为如下几种: 1).承载用户身份的HTTP首部 2).客户端IP地址跟踪,根据客户端IP地址进行识别 3).用户登录,用认证方式设别用户 4).使用胖URL,一种在URL中嵌入识别信息的技术 5).Cookie,一种持久化身份设别技术 关于HTTP首部的相关信息在下列表格中列出. HTTP首部 首部名称 首部类型 描述 From 请求 用户的Email地址 User-Agent 请求 用户的浏览器软件 Referer 请求 用户是从这个页面上依照链接跳转过来的 Aut

职场专业图片文字识别的方法,你知道吗

在职场中又一个专业的图片文字识别方法,工作不是经常整理图片文字的员工不知道,那就是使用一下专业的OCR文字识别软件,在加上专业的操作方法,就可以快速的把图片上的文字识别出来了.在平时生活中实现图片文字识别的方法不是很好用,而且操作步骤很繁琐,下面小编就分享一个专业的图片文字识别方法.工具和原料:1:带有文字的图片:2:OCR文字识别工具.操作方法:第一步:[打开OCR软件]:在电脑上打开文字识别软件,大家可以通过浏览器搜索关键词"迅捷OCR文字识别软件"找到OCR软件.第二步:[极速识

CCS v5 无法启动解决办法及Launchpad仿真器电脑无法识别解决方法

安装ccs_setup_5.1.1.00028.exe后(无论是自己装eclipse还是在原来的基础上安装eclipse的插件),ccs5的应用无法打开,错误为:An error has occurred.See the log file .\workspace\.metadata\.log. 本现象可以通过重装Microsoft VC redistributable package解决.安装包在下面的路径: (你的CCS V5安装文件)\baserepo\里重新安装 vcredist_x86_

javascript四种类型识别的方法

× 目录 [1]typeof [2]instanceof [3]constructor[4]toString 前面的话 javascript有复杂的类型系统,类型识别则是基本的功能.javascript总共提供了四种类型识别的方法,本文将对这四种方法进行详细说明 typeof运算符 typeof是一元运算符,放在单个操作数的前面,返回值为表示操作数类型的首字母小写的字符串 [注意]typeof运算符后面带不带圆括号都可以 console.log(typeof 'a');//'string' co

C# 验证码识别基础方法及源码

原文:C# 验证码识别基础方法及源码 先说说写这个的背景 最近有朋友在搞一个东西,已经做的挺不错了,最后想再完美一点,于是乎就提议把这种验证码给K.O.了,于是乎就K.O.了这个验证码.达到单个图片识别时间小于200ms,500个样本人工统计正确率为95%.由于本人没有相关经验,是摸着石头过河.本着经验分享的精神,分享一下整个分析的思路.在各位大神面前献丑了. 再看看部分识别结果 是不是看着很眼熟? 处理第一步 去背景噪音和二值化 对于这一块,考虑了几种方法. 方法一:统计图片颜色分布,颜色占有

判断浏览器方法

//判断浏览器方法   function get_userbrowser(){   var this_userAgent=navigator.userAgent;   var keywords=new Array("Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser","Firefox",&

JS - IE or not:判断是否为IE浏览器方法

问题:使用JS判断是否为IE浏览器 方法: 1.IE='\v'=='v' if('\v'=='v') // true only in IE 2.IE=(!+"\v1") if(!+"\v1") // true only in IE 3.IE=top.execScript?1:0 if(top.execScript?true:false) // true only in IE