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″,”" ...
随机推荐
- 敏捷冲刺每日报告三(Java-Team)
第三天报告(10.27 周五) 团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://gi ...
- C语言:第0次作业
问题1: 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 感性地讲,高中时意外看到了电影<社交网络>,自那时起就将将马克扎克伯格视为偶像,他天才的智慧和长远的眼光深深吸引了我 ...
- electron打包vue项目
electron是什么 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并 ...
- 关于TomCat上传文件中文名乱码的问题
最近在学习TomCat文件上传这一部分,由于文件上传必须要三个条件: 1.表单提交方式必须为Post 2.表单中需要有<input type="file">元素,还需要 ...
- jupyter notebook下python2和python3共存(Ubuntu)
提示NOTICE 时间:2018/04/06 主题:Ubuntu 下CAFFE框架 主角:Jupyter Notebook 简介: Jupyter Notebook(此前被称为 IPython not ...
- js window
window对象: browser object mode :bom对象. bom提供了独立于内容而与浏览器窗口进行交互的对象. bom主要用于管理窗口与窗口之间的通讯,因此其核心对象是window ...
- 帧动画的创建方式 - xml方式
废话不多说,先看东西 创建帧动画1 - xml方式 帧动画的创建方式主要以下2种: * 用xml创建动画: * 用代码创建动画: 本文内容主要关注 xml文件 创建帧动画的方式 xml文件 ...
- istio入门(01)istio的优势在哪里?
Istio能做什么?Istio 试图解决微服务实施后面临的问题.Istio 提供了一个完整的解决方案,对整个服务网格行为洞察和操作控制,以满足微服务应用程序的多样化需求. Istio在服务网络中提供了 ...
- maven入门(1-3)maven的生命周期
maven的生命周期 maven的生命周期是抽象的,其实际行为都由插件来完成,引入maven 的 生命周期就是为了对所有的构建过程进行抽象和统一. 这种方式类似于模板方法,模板方法模式在父类中定义 ...
- Error loading MySQLdb module: No module named 'MySQLdb'----------- django成功连接mysql数据库的方法
在进行django学习过程中,尝试使用框架连接mysql数据库,启动服务器的时候经常遇到Error loading MySQLdb module: No module named 'MySQLdb' ...