利用platform库获取浏览器和操作系统版本

简介: 原生方法检测网站获取用户的浏览器和操作系统版本是一个很常见的需求,但是细说起来这个功能的实现并不简单。一般情况下有两种思路。一是利用用户代理UserAgent来判断浏览器和OS的版本,因为各个平台和浏览器的UA都不一样。

原生方法检测

网站获取用户的浏览器和操作系统版本是一个很常见的需求,但是细说起来这个功能的实现并不简单。一般情况下有两种思路。

一是利用用户代理UserAgent来判断浏览器和OS的版本,因为各个平台和浏览器的UA都不一样。但是这种方法存在一个局限性,由于各方面的原因,浏览器的UA并不是一个简单的字符串,而是包含了各种信息的复杂字符串,而且由于UA可以被客户端修改,因此这种检测方法并不完全准确。以下是我的UA,大家可以猜猜我的浏览器和操作系统各是什么版本的。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

二就是通过各个浏览器之间实现的不同来判断。比如说只有IE浏览器支持ActiveX控件,因此通过在JavaScript代码中查看浏览器是否存在ActiveX控件属性即可判断该浏览器是否是IE浏览器。这种方法的优点是检测准确,而且相比检测UA来说速度更快。但是由于这种方法以来浏览器的具体实现,因此一旦浏览器升级换代,检测方法可能就失效了。

使用platform库

platform是一个检测浏览器和操作系统版本的JavaScript库。这里是它的Github地址:https://github.com/bestiejs/platform.js 。将它添加到自己的项目中也非常容易,下载项目中的platform.js文件然后添加到自己的项目中,然后在html文件中添加<script src="platform.js"></script>即可。

我电脑是Windows10 64位操作系统,使用的是Chrome 50 64位浏览器。以下是platform.js在我浏览器上的运行结果。你也可以将platform.js导入到自己的网页中,然后在F12开发者模式中在控制台中查看结果。

platform

返回一个浏览器平台对象,包含以下的各种属性

Object {description: "Chrome 50.0.2661.102 on Windows NT 10.0 64-bit", layout: "Blink", manufacturer: null, name: "Chrome", prerelease: null…}
description:"Chrome 50.0.2661.102 on Windows NT 10.0 64-bit"
layout:"Blink"
manufacturer:null
name:"Chrome"
os:Object
parse:parse(ua)
prerelease:null
product:null
toString:toStringPlatform()
ua:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
version:"50.0.2661.102"
proto:Object

platform.description

浏览器平台描述

Chrome 50.0.2661.102 on Windows NT 10.0 64-bit

platform.layout

浏览器布局引擎名称

Blink

platform.manufacturer

产品的制造商

null

platform.name

浏览器名称

Chrome

platform.parse([ua=navigator.userAgent])

这是一个方法,传入的参数是一个UA对象或者字符串,会返回该UA对应的platform对象。

platform.prerelease

浏览器预发布标志,可能为alpha或者beta。

null

platform.product

浏览器的产品名称

null

platform.toString()

如果可用的话就返回platform.description,否则就返回null

platform.ua

返回用户代理

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

platform.version

返回浏览器的版本

50.0.2661.102

platform.os

返回一个操作系统对象,包含操作系统的各个属性

platform.os.architecture

操作系统的体系结果,32还是64

64

platform.os.family

操作系统家族

Windows NT

platform.os.toString()

返回操作系统字符串

Windows NT 10.0 64-bit

platform.os.version

操作系统版本

10.0

相关文章
|
24天前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
15 2
|
7月前
|
存储 搜索推荐 数据挖掘
使用selenium库模拟浏览器行为,获取网页的cookie值
使用selenium库模拟浏览器行为,获取网页的cookie值
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
152 0
|
6月前
|
Web App开发 Ubuntu 安全
【已解决】ubuntu 16.04安装最新版本google chrome出错, 旧版本chrome浏览器安装流程
【已解决】ubuntu 16.04安装最新版本google chrome出错, 旧版本chrome浏览器安装流程
442 0
|
4月前
|
Web App开发
Google Chrome 浏览器 119.0.6045.106 版本提示 STATUS_INVALID_IMAGE_HASH 崩溃
Google Chrome 浏览器 119.0.6045.106 版本提示 STATUS_INVALID_IMAGE_HASH 崩溃
68 0
|
30天前
|
算法 Linux 调度
根基已筑!Anolis OS 23.1 预览版本搭载 Linux 6.6 内核和工具链升级完成
Anolis OS 23.1 对软件包的选择和组合进行了重新规划与决策,满足更为广泛的应用场景需求。
|
5月前
|
测试技术 KVM 开发工具
【OS Pintos】Pintos 内核库基本数据结构 | 运行测试用例 alarm-multiple
【OS Pintos】Pintos 内核库基本数据结构 | 运行测试用例 alarm-multiple
73 0
|
3月前
|
安全 物联网 Linux
Windows客户端操作系统的历史版本简介
从Windows 1.0到最新的Windows 11,微软操作系统经历了从简单的GUI层迭于DOS之上,到全面独立且功能丰富的现代操作系统的发展历程,不断引入创新的用户界面、提升性能、强化安全性,并随着技术进步与市场需求变化,逐步优化了对多任务处理、网络连接、移动和触控设备的支持。
72 0
|
8月前
|
Unix API 调度
【python】 一文了解 OS 操作系统交互库简单使用方法
Python的os模块(Operating System Interface)提供了访问操作系统相关功能的接口,它允许程序与底层操作系统交互,对文件系统、进程、套接字等底层操作进行控制。典型的用法是程序打开某个文件时,os库可以帮助我们判断文件是否存在/是否可读/是否可写等等,同时也可以帮助我们创建和删除目录、文件链接等等。os库提供了一系列的函数和方法,用于处理和管理操作系统文件、文件夹,以及运行和控制进程,具体包括以下功能:对文件和目录(文件夹)的操作:包括创建、重命名、删除等等。
107 0

热门文章

最新文章