js获取设备
总结了一个JavaScript获取当前终端类型(pc, mobile),操作系统类型,浏览器类型,浏览器版本的小工具。
个人觉得还行,测试过没有问题,能识别ie7以及以上。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/** author: Weihuan date: 2017-6-26**/var _AgentInfo = { deviceType: "", // pc or mobile OSname: "", // windows, Android, linux and so on... browserName: "", // chrome, safari, firefox, IE and so on... browserVer: "", // browser version, important if in IE environment. adaptType: 0, // A type value, Adapt to the screen due to width _init: function(){ _AgentInfo.setDeviceAndOS(); _AgentInfo.setBrowser(); }, setDeviceAndOS: function(){ var name = "unknown"; if(window.navigator.userAgent.indexOf("Android") != -1){ name = "Android"; }else if(window.navigator.userAgent.indexOf("iPhone") != -1){ name = "iPhone"; }else if(window.navigator.userAgent.indexOf("SymbianOS") != -1){ name = "SymbianOS"; }else if(window.navigator.userAgent.indexOf("Windows Phone") != -1){ name = "Windows Phone"; }else if(window.navigator.userAgent.indexOf("iPad") != -1){ name = "iPad"; }else if(window.navigator.userAgent.indexOf("iPod") != -1){ name = "iPod"; } if(name != "unknown"){ _AgentInfo.OSname = name; _AgentInfo.deviceType = "mobile"; return; } if (window.navigator.userAgent.indexOf("Windows NT 10.0")!= -1){ name="Windows 10"; }else if (window.navigator.userAgent.indexOf("Windows NT 6.2") != -1){ name="Windows 8"; }else if (window.navigator.userAgent.indexOf("Windows NT 6.1") != -1){ name="Windows 7"; }else if (window.navigator.userAgent.indexOf("Windows NT 6.0") != -1){ name="Windows Vista"; }else if (window.navigator.userAgent.indexOf("Windows NT 5.1") != -1){ name="Windows XP"; }else if (window.navigator.userAgent.indexOf("Windows NT 5.0") != -1){ name="Windows 2000"; }else if (window.navigator.userAgent.indexOf("Mac") != -1){ name="Mac/iOS"; }else if (window.navigator.userAgent.indexOf("X11") != -1){ name="UNIX"; }else if (window.navigator.userAgent.indexOf("Linux") != -1){ name="Linux"; } _AgentInfo.OSname = name; _AgentInfo.deviceType = "pc"; }, setBrowser: function(){ var nAgt = navigator.userAgent; var browserName = navigator.appName; var fullVersion = ''+parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion,10); var nameOffset,verOffset,ix; if ((verOffset=nAgt.indexOf("Opera"))!=-1) { // In Opera, the true version is after "Opera" or after "Version" browserName = "Opera"; fullVersion = nAgt.substring(verOffset+6); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } else if ( (nAgt.indexOf("Trident"))!=-1 ) { // ( ver >= ie7) In MSIE, the true version is after "MSIE" in userAgent if((verOffset=nAgt.indexOf("MSIE"))!=-1){ fullVersion = nAgt.substring(verOffset+5); }else { fullVersion = '11.0'; } if(fullVersion == 5){ fullVersion = "11.0"; } browserName = "IE"; } else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { // In Chrome, the true version is after "Chrome" browserName = "Chrome"; fullVersion = nAgt.substring(verOffset+7); } else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { // In Safari, the true version is after "Safari" or after "Version" browserName = "Safari"; fullVersion = nAgt.substring(verOffset+7); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { // In Firefox, the true version is after "Firefox" browserName = "Firefox"; fullVersion = nAgt.substring(verOffset+8); } else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ){ // In most other browsers, "name/version" is at the end of userAgent browserName = nAgt.substring(nameOffset,verOffset); fullVersion = nAgt.substring(verOffset+1); if (browserName.toLowerCase()==browserName.toUpperCase()) { browserName = navigator.appName; } } if ((ix=fullVersion.indexOf(";"))!=-1) // trim the fullVersion string at semicolon/space if present fullVersion=fullVersion.substring(0,ix); if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix); majorVersion = parseInt(''+fullVersion,10); if (isNaN(majorVersion)) { fullVersion = ''+parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion,10); } _AgentInfo.browserName = browserName; _AgentInfo.browserVer = fullVersion; }, isMobile: function(){ if(_AgentInfo.deviceType == "mobile"){ return true; } return false; }, setAdaptType(){ // A type value, Adapt to the screen due to width. For convenient if(screen.width <= 374){ _AgentInfo.adaptType = 0; }else if(screen.width <= 413){ _AgentInfo.adaptType = 1; }else { _AgentInfo.adaptType = 2; } }} |
js获取设备的更多相关文章
- 每日技术总结:vue router传参方式,js获取设备高度
今天貌似没什么问题,23333…… 1.vue router 路由传参的方式 应用情景:从分类页(category.vue)进入商品列表页(list.vue),需要传递商品分类id(catId),商品 ...
- js获取设备公网ip + 服务器根据公网ip 获取IP信息
1.前言 本来呢,想实现js定位功能,最少定位到城市,一开始,使用的是搜狐的api直接获取数据,可是,有时候搜狐不可靠,只能得到 公网ip,其他信息无用,就像这样 2.既然这样,还不如我自己请求自己的 ...
- js获取设备内网ip
可以直接使用,不需要导入其他配置 看代码 1 <script> 2 //获取内网ip 3 var RTCPeerConnection = window.RTCPeerConnection ...
- js获取设备信息
var su = navigator.userAgent.toLowerCase(), mb = ['ipad', 'iphone os', 'midp', 'rv:1.2.3.4', 'ucweb' ...
- php获取设备的宽度和高度
php获取设备的宽度和高度 如果前台没有传输当前请求的宽度和高度,我们有时候需要用php借助javascript获取屏幕的宽和高,以控制现实的样式. 代码如下: <?php /* * 获取设备宽 ...
- js获取屏幕(设备)宽高
平常获取设备的宽高无非就那几 <script language="javascript"> var h = ""; h += " 网页可见 ...
- js获取url参数值(HTML之间传值)
<h3>未设置设备: <a href="javascript:addTab('设备列表','PKE_DeviceContent/PKE_DeviceContent.aspx ...
- Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息
详情请看:Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息 在项目中需要获取到当前设备,例如手机的ID,联网状态,等,然后这个Cordova里有这个插件可以用, ...
- 获取设备IP地址
腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress返回的是数据格式为: 1 var IPData = new Array(“58.218.198.205″,”" ...
随机推荐
- Beta 第四天
今天遇到的困难: 百度位置假死的问题研究发现并不是源于代码的问题,而是直接运行在主线程中会出现诸多问题 Fragment碎片刷新时总产生的固定位置的问题未果 今天完成的任务: 陈甘霖:修复了部分Bug ...
- C语言博客作业--一二维数组
一.PTA实验作业 题目1(7-6) (1).本题PTA提交列表 (2)设计思路 //天数n:数组下标i:小时数h,分钟数m:对应书号的标签数组flag[1001] //总阅读时间sum初始化为0,借 ...
- 从0开始的LeetCode生活—001-Two Sum
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- 201621123031 《Java程序设计》第9周学习总结
作业09-集合与泛型 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 一.泛型的基本概念 泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Paramet ...
- 201621123031 《Java程序设计》第6周学习总结
作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多 ...
- Python科学计算(一)
作者 J.R. Johansson (robert@riken.jp) http://dml.riken.jp/~rob/ 最新版本的 IPython notebook 课程文件 http://git ...
- 【iOS】swift init构造器
这几天在使用 Swift 重写原来的一个运动社交应用 SportJoin. 为什么要重写呢? 首先因为实在找不到设计师给我作图; 其次, 我也闲不下来, 想找一些项目做, 所以只好将原来的代码重写了. ...
- GitChat招募IT类写作作者
GitChat是一个移动端的IT知识.技术分享平台,于2017.10和CSDN合并,成为其旗下独立品牌. 我们正在寻求有互联网基因的人来一起分享IT人员的关切,诚挚邀请您来做一次分享(让IT类文章变现 ...
- css3动画transition详解
一.transition-property 语法: transition-property : none | all | [ <IDENT> ] [ ',' <IDENT> ] ...
- node框架koa
node的两大常见web服务器框架有express和koa,之前已经介绍过express了现在来介绍下koa吧~ koa也是express团队的出品,意在利用es7新出的async来告别"回 ...