如何使用JavaScript找到操作系统名称和操作系统版本?
当前回答
你可以使用这个javascript函数来检查用户的操作系统
function getOS() {
var userAgent = window.navigator.userAgent,
platform = window.navigator.platform,
macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],
windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],
iosPlatforms = ['iPhone', 'iPad', 'iPod'],
os = null;
if (macosPlatforms.indexOf(platform) !== -1) {
os = 'Mac OS';
} else if (iosPlatforms.indexOf(platform) !== -1) {
os = 'iOS';
} else if (windowsPlatforms.indexOf(platform) !== -1) {
os = 'Windows';
} else if (/Android/.test(userAgent)) {
os = 'Android';
} else if (!os && /Linux/.test(platform)) {
os = 'Linux';
}
return os;
}
alert(getOS());
其他回答
js似乎是一个很好的文件库。
使用的例子:
// on IE10 x86 platform preview running in IE7 compatibility mode on Windows 7 64 bit edition
platform.name; // 'IE'
platform.version; // '10.0'
platform.layout; // 'Trident'
platform.os; // 'Windows Server 2008 R2 / 7 x64'
platform.description; // 'IE 10.0 x86 (platform preview; running in IE 7 mode) on Windows Server 2008 R2 / 7 x64'
// or on an iPad
platform.name; // 'Safari'
platform.version; // '5.1'
platform.product; // 'iPad'
platform.manufacturer; // 'Apple'
platform.layout; // 'WebKit'
platform.os; // 'iOS 5.0'
platform.description; // 'Safari 5.1 on Apple iPad (iOS 5.0)'
// or parsing a given UA string
var info = platform.parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7.2; en; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 11.52');
info.name; // 'Opera'
info.version; // '11.52'
info.layout; // 'Presto'
info.os; // 'Mac OS X 10.7.2'
info.description; // 'Opera 11.52 (identifying as Firefox 4.0) on Mac OS X 10.7.2'
我不能评论@Ian Ippolito的回答(因为如果我有代表的话我会评论的),但根据他的评论链接,我相当确定你可以找到IOS的Chrome版本。https://developer.chrome.com/multidevice/user-agent?hl=ja列出的UA为:Mozilla/5.0 (iPhone;CPU iPhone OS 10_3像Mac OS X) AppleWebKit/602.1.50 (KHTML,像壁虎)CriOS/56.0.2924.75移动/14E5239e Safari/602.1
所以这应该是可行的:
if ((verOffset = nAgt.indexOf('CriOS')) != -1) {
//Chrome on iPad spoofing Safari...correct it.
browser = 'Chrome';
version = nAgt.substring(verOffset + 6);//should get the criOS ver.
}
我还没能测试一下(否则我会改进他的答案),因为我的iPad在家里,而我在工作,但我想我应该把它放在那里。
我正在使用这个:)
getPlatform() {
const allPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE', 'Android', 'iPhone', 'iPad', 'iPod'];
return allPlatforms.find(item => item === navigator.platform);
}
我创建了一个用于解析User Agent字符串的库,名为Voodoo。但是要注意,不应该用它来代替特征检测。
Voodoo所做的是解析userAgent字符串,该字符串在Navigator对象(window.navigator)中找到。并不是所有浏览器都会传递可靠的userAgent字符串,所以即使这是正常的方式,userAgent也不总是可信的。
https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUAData/platform
console.log (navigator.userAgentData.platform)
例如:macOS, Windows
警告:window.navigator.platform已弃用
推荐文章
- (深度)使用jQuery复制数组
- 你从哪里包含jQuery库?谷歌JSAPI吗?CDN吗?
- 在setInterval中使用React状态钩子时状态不更新
- 使用JavaScript显示/隐藏'div'
- 使用JavaScript获取所选的选项文本
- AngularJS模板中的三元运算符
- 让d3.js可视化布局反应灵敏的最好方法是什么?
- 原型的目的是什么?
- 检查jquery是否使用Javascript加载
- 将camelCaseText转换为标题大小写文本
- 如何在JavaScript客户端截屏网站/谷歌怎么做的?(无需存取硬盘)
- 如何在JavaScript中遍历表行和单元格?
- jQuery map vs. each
- 自定义异常类型
- 窗口。Onload vs <body Onload =""/>