[JS]用户终端浏览器的判断源代码写法示例
[JS]用户终端浏览器的判断源代码写法示例
[JS]用户终端浏览器的判断源代码写法示例1
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
- <title>浏览器测试</title>
- <script src="Browser.js"></script>
- <style>
- a{
- text-decoration: none;
- color: #757575;
- }
- a:hover{
- text-decoration: underline;
- }
- .wrapper{
- width: 100%;
- max-width: 960px;
- margin: 0 auto;
- }
- .container{
- margin-bottom: 20px;
- }
- .footer{
- line-height: 40px;
- text-align: right;
- }
- .footer a{
- margin: 0 5px;
- }
- .module table{
- width: 100%;
- table-layout: fixed;
- border-collapse: collapse;
- border-spacing: 0;
- text-align: center;
- }
- .module thead{
- background: #eee;
- }
- .module th,.module td{
- padding: 8px 5px;
- line-height: 24px;
- border: 1px solid #eee;
- }
- </style>
- </head>
- <body>
- <div class="wrapper">
- <div class="container">
- <div class="module">
- <script>
- var info = new Browser();
- if(info.device!='Mobile'){
- document.writeln('<table>\
- <caption><p>'+navigator.userAgent+'</p></caption>\
- <thead>\
- <tr>\
- <th>浏览器</th>\
- <th>版本</th>\
- <th>内核</th>\
- <th>操作系统</th>\
- <th>设备</th>\
- <th>语言</th>\
- </tr>\
- </thead>\
- <tbody>\
- <tr>\
- <td>'+info.browser+'</td>\
- <td>'+info.version+'</td>\
- <td>'+info.engine+'</td>\
- <td>'+info.os+' '+info.osVersion+'</td>\
- <td>'+info.device+'</td>\
- <td>'+info.language+'</td>\
- </tr>\
- </tbody>\
- </table>');
- }else{
- document.writeln('<table>\
- <caption><p>'+navigator.userAgent+'</p></caption>\
- <thead>\
- <tr>\
- <th>浏览器</th>\
- <th>版本</th>\
- <th>内核</th>\
- </tr>\
- </thead>\
- <tbody>\
- <tr>\
- <td>'+info.browser+'</td>\
- <td>'+info.version+'</td>\
- <td>'+info.engine+'</td>\
- </tr>\
- </tbody>\
- </table>');
- document.writeln('<table>\
- <thead>\
- <tr>\
- <th>操作系统</th>\
- <th>设备</th>\
- <th>语言</th>\
- </tr>\
- </thead>\
- <tbody>\
- <tr>\
- <td>'+info.os+' '+info.osVersion+'</td>\
- <td>'+info.device+'</td>\
- <td>'+info.language+'</td>\
- </tr>\
- </tbody>\
- </table>');
- }
- </script>
- </div>
- </div>
- <div class="footer">
- <a href="/">返回首页</a>
- </div>
- </div>
- </body>
- </html>
[JS]用户终端浏览器的判断源代码写法示例2
Browser.js
- /**
- * 浏览器解析,浏览器、Node.js皆可
- * https://github.com/mumuy/browser
- */
- (function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD
- define(factory)
- } else if (typeof exports === 'object') {
- // Node, CommonJS-like
- module.exports = factory()
- } else {
- // Browser globals (root is window)
- root.Browser = factory()
- }
- }(this, function () {
- var _window = window||{};
- var _navigator = navigator||{};
- return function (userAgent) {
- var u = userAgent || _navigator.userAgent;
- var _this = this;
- var match = {
- //内核
- 'Trident': u.indexOf('Trident') > -1 || u.indexOf('NET CLR') > -1,
- 'Presto': u.indexOf('Presto') > -1,
- 'WebKit': u.indexOf('AppleWebKit') > -1,
- 'Gecko': u.indexOf('Gecko/') > -1,
- //浏览器
- 'Safari': u.indexOf('Safari') > -1,
- 'Chrome': u.indexOf('Chrome') > -1 || u.indexOf('CriOS') > -1,
- 'IE': u.indexOf('MSIE') > -1 || u.indexOf('Trident') > -1,
- 'Edge': u.indexOf('Edge') > -1,
- 'Firefox': u.indexOf('Firefox') > -1 || u.indexOf('FxiOS') > -1,
- 'Firefox Focus': u.indexOf('Focus') > -1,
- 'Chromium': u.indexOf('Chromium') > -1,
- 'Opera': u.indexOf('Opera') > -1 || u.indexOf('OPR') > -1,
- 'Vivaldi': u.indexOf('Vivaldi') > -1,
- 'Yandex': u.indexOf('YaBrowser') > -1,
- 'Kindle': u.indexOf('Kindle') > -1 || u.indexOf('Silk/') > -1,
- '360': u.indexOf('360EE') > -1 || u.indexOf('360SE') > -1,
- 'UC': u.indexOf('UC') > -1 || u.indexOf(' UBrowser') > -1,
- 'QQBrowser': u.indexOf('QQBrowser') > -1,
- 'QQ': u.indexOf('QQ/') > -1,
- 'Baidu': u.indexOf('Baidu') > -1 || u.indexOf('BIDUBrowser') > -1,
- 'Maxthon': u.indexOf('Maxthon') > -1,
- 'Sogou': u.indexOf('MetaSr') > -1 || u.indexOf('Sogou') > -1,
- 'LBBROWSER': u.indexOf('LBBROWSER') > -1,
- '2345Explorer': u.indexOf('2345Explorer') > -1,
- 'TheWorld': u.indexOf('TheWorld') > -1,
- 'XiaoMi': u.indexOf('MiuiBrowser') > -1,
- 'Quark': u.indexOf('Quark') > -1,
- 'Qiyu': u.indexOf('Qiyu') > -1,
- 'Wechat': u.indexOf('MicroMessenger') > -1,
- 'Taobao': u.indexOf('AliApp(TB') > -1,
- 'Alipay': u.indexOf('AliApp(AP') > -1,
- 'Weibo': u.indexOf('Weibo') > -1,
- 'Douban': u.indexOf('com.douban.frodo') > -1,
- 'Suning': u.indexOf('SNEBUY-APP') > -1,
- 'iQiYi': u.indexOf('IqiyiApp') > -1,
- //系统或平台
- 'Windows': u.indexOf('Windows') > -1,
- 'Linux': u.indexOf('Linux') > -1 || u.indexOf('X11') > -1,
- 'Mac OS': u.indexOf('Macintosh') > -1,
- 'Android': u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
- 'Ubuntu': u.indexOf('Ubuntu') > -1,
- 'FreeBSD': u.indexOf('FreeBSD') > -1,
- 'Debian': u.indexOf('Debian') > -1,
- 'Windows Phone': u.indexOf('IEMobile') > -1 || u.indexOf('Windows Phone')>-1,
- 'BlackBerry': u.indexOf('BlackBerry') > -1 || u.indexOf('RIM') > -1,
- 'MeeGo': u.indexOf('MeeGo') > -1,
- 'Symbian': u.indexOf('Symbian') > -1,
- 'iOS': u.indexOf('like Mac OS X') > -1,
- 'Chrome OS': u.indexOf('CrOS') > -1,
- 'WebOS': u.indexOf('hpwOS') > -1,
- //设备
- 'Mobile': u.indexOf('Mobi') > -1 || u.indexOf('iPh') > -1 || u.indexOf('480') > -1,
- 'Tablet': u.indexOf('Tablet') > -1 || u.indexOf('Pad') > -1 || u.indexOf('Nexus 7') > -1
- };
- //修正
- if (match['Mobile']) {
- match['Mobile'] = !(u.indexOf('iPad') > -1);
- } else if (_window.showModalDialog && _window.chrome) {
- match['360'] = true;
- }
- //基本信息
- var hash = {
- engine: ['WebKit', 'Trident', 'Gecko', 'Presto'],
- browser: ['Safari', 'Chrome', 'Edge', 'IE', 'Firefox', 'Firefox Focus', 'Chromium', 'Opera', 'Vivaldi', 'Yandex', 'Kindle', '360', 'UC', 'QQBrowser', 'QQ', 'Baidu', 'Maxthon', 'Sogou', 'LBBROWSER', '2345Explorer', 'TheWorld', 'XiaoMi', 'Quark', 'Qiyu', 'Wechat', 'Taobao', 'Alipay', 'Weibo', 'Douban','Suning', 'iQiYi'],
- os: ['Windows', 'Linux', 'Mac OS', 'Android', 'Ubuntu', 'FreeBSD', 'Debian', 'iOS', 'Windows Phone', 'BlackBerry', 'MeeGo', 'Symbian', 'Chrome OS', 'WebOS'],
- device: ['Mobile', 'Tablet']
- };
- _this.device = 'PC';
- _this.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]) {
- _this[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, '.');
- },
- 'Debian': function () {
- return u.replace(/^.*Debian\/([\d.]+).*$/, '$1');
- },
- 'Windows Phone': function () {
- return u.replace(/^.*Windows Phone( OS)? ([\d.]+);.*$/, '$2');
- },
- 'Mac OS': function () {
- return u.replace(/^.*Mac OS X ([\d_]+).*$/, '$1').replace(/_/g, '.');
- },
- 'WebOS': function () {
- return u.replace(/^.*hpwOS\/([\d.]+);.*$/, '$1');
- }
- }
- _this.osVersion = '';
- if (osVersion[_this.os]) {
- _this.osVersion = osVersion[_this.os]();
- if (_this.osVersion == u) {
- _this.osVersion = '';
- }
- }
- //浏览器版本信息
- var version = {
- 'Safari': function () {
- return u.replace(/^.*Version\/([\d.]+).*$/, '$1');
- },
- 'Chrome': function () {
- return u.replace(/^.*Chrome\/([\d.]+).*$/, '$1').replace(/^.*CriOS\/([\d.]+).*$/, '$1');
- },
- 'IE': function () {
- return u.replace(/^.*MSIE ([\d.]+).*$/, '$1').replace(/^.*rv:([\d.]+).*$/, '$1');
- },
- 'Edge': function () {
- return u.replace(/^.*Edge\/([\d.]+).*$/, '$1');
- },
- 'Firefox': function () {
- return u.replace(/^.*Firefox\/([\d.]+).*$/, '$1').replace(/^.*FxiOS\/([\d.]+).*$/, '$1');
- },
- 'Firefox Focus': function () {
- return u.replace(/^.*Focus\/([\d.]+).*$/, '$1');
- },
- 'Chromium': function () {
- return u.replace(/^.*Chromium\/([\d.]+).*$/, '$1');
- },
- 'Opera': function () {
- return u.replace(/^.*Opera\/([\d.]+).*$/, '$1').replace(/^.*OPR\/([\d.]+).*$/, '$1');
- },
- 'Vivaldi': function () {
- return u.replace(/^.*Vivaldi\/([\d.]+).*$/, '$1');
- },
- 'Yandex': function () {
- return u.replace(/^.*YaBrowser\/([\d.]+).*$/, '$1');
- },
- 'Kindle': function () {
- return u.replace(/^.*Version\/([\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');
- },
- 'Sogou': function () {
- return u.replace(/^.*SE ([\d.X]+).*$/, '$1').replace(/^.*SogouMobileBrowser\/([\d.]+).*$/, '$1');
- },
- '2345Explorer': function () {
- return u.replace(/^.*2345Explorer\/([\d.]+).*$/, '$1');
- },
- 'TheWorld': function () {
- return u.replace(/^.*TheWorld ([\d.]+).*$/, '$1');
- },
- 'XiaoMi': function () {
- return u.replace(/^.*MiuiBrowser\/([\d.]+).*$/, '$1');
- },
- 'Quark': function () {
- return u.replace(/^.*Quark\/([\d.]+).*$/, '$1');
- },
- 'Qiyu': function () {
- return u.replace(/^.*Qiyu\/([\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');
- },
- 'Douban': function () {
- return u.replace(/^.*com.douban.frodo\/([\d.]+).*$/, '$1');
- },
- 'Suning': function () {
- return u.replace(/^.*SNEBUY-APP([\d.]+).*$/, '$1');
- },
- 'iQiYi': function () {
- return u.replace(/^.*IqiyiVersion\/([\d.]+).*$/, '$1');
- }
- };
- _this.version = '';
- if (version[_this.browser]) {
- _this.version = version[_this.browser]();
- if (_this.version == u) {
- _this.version = '';
- }
- }
- //修正
- if (_this.browser == 'Edge') {
- _this.engine = 'EdgeHTML';
- } else if (_this.browser == 'Chrome' && parseInt(_this.version) > 27) {
- _this.engine = 'Blink';
- } else if (_this.browser == 'Opera' && parseInt(_this.version) > 12) {
- _this.engine = 'Blink';
- } else if (_this.browser == 'Yandex') {
- _this.engine = 'Blink';
- }
- };
- }));
热门文章推荐
- [JS]window.location获取url各项参数详解
- [JS]jQuery,javascript获得网页的高度和宽度
- [JS]视频弹窗视频弹出层videoLightBox(含三种播放器的用法)
- [JS]JS提交中文encodeURI两次转码
- [JS]js版方面encodeURI转码和decodeURI解码的用法实例
- [JS]js取当前机子的时间戳实例
- [JS]AES加密(基于crypto-js)PHP后端解密
- [JS]data:image/png;base64写法的用途及说明
请稍候...