使用JavaScript对常用浏览器的判断
来源:互联网 发布:2017最新人工智能产品 编辑:程序博客网 时间:2024/06/06 03:15
浏览器js函数
var browserInfo = function (userAgent) { var u = userAgent || navigator.userAgent; var self = this; var match = { //内核 'Trident': u.indexOf('Trident') > 0 || u.indexOf('NET CLR') > 0, 'Presto': u.indexOf('Presto') > 0, 'WebKit': u.indexOf('AppleWebKit') > 0, 'Gecko': u.indexOf('Gecko/') > 0, //浏览器 'Safari': u.indexOf('Safari') > 0, 'Chrome': u.indexOf('Chrome') > 0 || u.indexOf('CriOS') > 0, 'IE': u.indexOf('MSIE') > 0 || u.indexOf('Trident') > 0, 'Edge': u.indexOf('Edge') > 0, 'Firefox': u.indexOf('Firefox') > 0, 'Opera': u.indexOf('Opera') > 0 || u.indexOf('OPR') > 0, 'Vivaldi': u.indexOf('Vivaldi') > 0, 'UC': u.indexOf('UC') > 0 || u.indexOf(' UBrowser') > 0, 'QQBrowser': u.indexOf('QQBrowser') > 0, 'QQ': u.indexOf('QQ/') > 0, 'Baidu': u.indexOf('Baidu') > 0 || u.indexOf('BIDUBrowser') > 0, 'Maxthon': u.indexOf('Maxthon') > 0, 'LBBROWSER': u.indexOf('LBBROWSER') > 0, '2345Explorer': u.indexOf('2345Explorer') > 0, 'Sogou': u.indexOf('MetaSr') > 0 || u.indexOf('Sogou') > 0, 'Wechat': u.indexOf('MicroMessenger') > 0, 'Taobao': u.indexOf('AliApp(TB') > 0, 'Alipay': u.indexOf('AliApp(AP') > 0, 'Weibo': u.indexOf('Weibo') > 0, 'Suning': u.indexOf('SNEBUY-APP') > 0, 'iQiYi': u.indexOf('IqiyiApp') > 0, //操作系统平台 'Windows': u.indexOf('Windows') > 0, 'Linux': u.indexOf('Linux') > 0, 'Mac': u.indexOf('Macintosh') > 0, 'Android': u.indexOf('Android') > 0 || u.indexOf('Adr') > 0, 'WP': u.indexOf('IEMobile') > 0, 'BlackBerry': u.indexOf('BlackBerry') > 0 || u.indexOf('RIM') > 0 || u.indexOf('BB') > 0, 'MeeGo': u.indexOf('MeeGo') > 0, 'Symbian': u.indexOf('Symbian') > 0, 'iOS': u.indexOf('like Mac OS X') > 0, //移动设备 'Mobile': u.indexOf('Mobi') > 0 || u.indexOf('iPh') > 0 || u.indexOf('480') > 0, 'Tablet': u.indexOf('Tablet') > 0 || u.indexOf('iPad') > 0 || u.indexOf('Nexus 7') > 0 }; if (match.Mobile) { match.Mobile = !(u.indexOf('iPad') > 0); } //基本信息 var hash = { engine: ['WebKit', 'Trident', 'Gecko', 'Presto'], browser: ['Safari', 'Chrome', 'IE', 'Edge', 'Firefox', 'Opera', 'Vivaldi', 'UC', 'QQBrowser', 'QQ', 'Baidu', 'Maxthon', 'Sogou', 'LBBROWSER', '2345Explorer', 'Wechat', 'Taobao', 'Alipay', 'Weibo', 'Suning', 'iQiYi'], os: ['Windows', 'Linux', 'Mac', 'Android', 'iOS', 'WP', 'BlackBerry', 'MeeGo', 'Symbian'], device: ['Mobile', 'Tablet'] }; self.device = 'PC'; self.language = (function () { var g = (navigator.browserLanguage || navigator.language); var arr = g.split('-'); if (arr[1]) { arr[1] = arr[1].toUpperCase(); } return arr.join('-'); })(); for (var s in hash) { for (var i = 0; i < hash[s].length; i++) { var value = hash[s][i]; if (match[value]) { self[s] = value; } } } //系统版本信息 var osVersion = { 'Windows': function () { var v = u.replace(/^.*Windows NT ([\d.]+);.*$/, '$1'); var hash = { '6.4': '10', '6.3': '8.1', '6.2': '8', '6.1': '7', '6.0': 'Vista', '5.2': 'XP', '5.1': 'XP', '5.0': '2000' }; return hash[v] || v; }, 'Android': function () { return u.replace(/^.*Android ([\d.]+);.*$/, '$1'); }, 'iOS': function () { return u.replace(/^.*OS ([\d_]+) like.*$/, '$1').replace(/_/g, '.'); }, 'Mac': function () { return u.replace(/^.*Mac OS X ([\d_]+).*$/, '$1').replace(/_/g, '.'); } } self.osVersion = ''; if (osVersion[self.os]) { self.osVersion = osVersion[self.os](); } //浏览器版本信息 var version = { 'Chrome': function () { return u.replace(/^.*Chrome\/([\d.]+).*$/, '$1'); }, 'IE': function () { var v = u.replace(/^.*MSIE ([\d.]+).*$/, '$1'); if (v == u) { v = u.replace(/^.*rv:([\d.]+).*$/, '$1'); } return v != u ? v : ''; }, 'Edge': function () { return u.replace(/^.*Edge\/([\d.]+).*$/, '$1'); }, 'Firefox': function () { return u.replace(/^.*Firefox\/([\d.]+).*$/, '$1'); }, 'Safari': function () { return u.replace(/^.*Version\/([\d.]+).*$/, '$1'); }, 'Opera': function () { return u.replace(/^.*Opera\/([\d.]+).*$/, '$1'); }, 'Vivaldi': function () { return u.replace(/^.*Vivaldi\/([\d.]+).*$/, '$1'); }, 'Maxthon': function () { return u.replace(/^.*Maxthon\/([\d.]+).*$/, '$1'); }, 'QQBrowser': function () { return u.replace(/^.*QQBrowser\/([\d.]+).*$/, '$1'); }, 'QQ': function () { return u.replace(/^.*QQ\/([\d.]+).*$/, '$1'); }, 'Baidu': function () { return u.replace(/^.*BIDUBrowser[\s\/]([\d.]+).*$/, '$1'); }, 'UC': function () { return u.replace(/^.*UC?Browser\/([\d.]+).*$/, '$1'); }, '2345Explorer': function () { return u.replace(/^.*2345Explorer\/([\d.]+).*$/, '$1'); }, 'Wechat': function () { return u.replace(/^.*MicroMessenger\/([\d.]+).*$/, '$1'); }, 'Taobao': function () { return u.replace(/^.*AliApp\(TB\/([\d.]+).*$/, '$1'); }, 'Alipay': function () { return u.replace(/^.*AliApp\(AP\/([\d.]+).*$/, '$1'); }, 'Weibo': function () { return u.replace(/^.*weibo__([\d.]+).*$/, '$1'); }, 'Suning': function () { return u.replace(/^.*SNEBUY-APP([\d.]+).*$/, '$1'); }, 'iQiYi': function () { return u.replace(/^.*IqiyiVersion\/([\d.]+).*$/, '$1'); } }; self.version = ''; if (version[self.browser]) { self.version = version[self.browser](); }};
测试代码:
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>使用JavaScript对浏览器判断</title> <script src="Scripts/browser.js"></script></head><body> <form id="form1" runat="server"> <div id="divInfo"> </div> <script type="text/javascript"> var browserInfo = new browserInfo(); var html = "<caption><p>" + navigator.userAgent + "</p></caption><table>" + "<thead><tr>" + "<th>浏览器</th>" + "<th>版本</th>" + "<th>内核</th>" + "<th>操作系统</th>" + "<th>设备</th>" + "<th>语言</th>" + "</tr></thead>" + "<tr>" + "<td>" + browserInfo.browser + "</td>" + "<td>" + browserInfo.version + "</td>" + "<td>" + browserInfo.engine + "</td>" + "<td>" + browserInfo.os + " " + browserInfo.osVersion + "</td>" + "<td>" + browserInfo.device + "</td>" + "<td>" + browserInfo.language + "</td>" + "</tr></table>"; document.getElementById("divInfo").outerHTML = html; </script> </form></body></html>
运行结果如下:
阅读全文
2 0
- 使用JavaScript对常用浏览器的判断
- 使用javascript判断浏览器版本
- 对浏览器版本的判断
- Javascript判断浏览器的原理
- JavaScript对浏览器的检测
- javascript基础(BOM常用对象:navigtor,判断浏览器的常用方法,和区分IE浏览器的方法)(三十九)
- 使用javascript判断浏览器版本类型
- 使用javascript判断浏览器是否是火狐
- 使用chrome浏览器对javascript进行调试
- Ajax上的对浏览器的判断
- HTML/CSS对浏览器的判断
- JS对各种浏览器的判断
- PHP 判断使用的浏览器
- 浏览器及系统判断的JavaScript代码
- js 判断当前浏览器JavaScript的版本
- JavaScript判断浏览器的类型和版本
- 史上最全的浏览器类型判断 javascript 脚本
- 判断浏览器支持的javascript版本
- 如何在CentOS 6.x/7.x上安装git及最新版
- 欢迎使用CSDN-markdown编辑器
- Java泛型
- bzoj 2434 [Noi2011]阿狸的打字机
- 基础网络概念(五)TCP/IP传输层相关封包与数据、TCP三次握手
- 使用JavaScript对常用浏览器的判断
- java、python、php、linux知识结构
- react-native run-android时,出现的小错误
- 第058讲 顺序查找 二分查找法
- Q&A——资源管理(七)
- HBase启动错误
- python知识小结
- 添加footprint
- 两个字符串比较差异