利用platform库获取浏览器和操作系统版本
原生方法檢測
網(wǎng)站獲取用戶的瀏覽器和操作系統(tǒng)版本是一個很常見的需求,但是細說起來這個功能的實現(xiàn)并不簡單。一般情況下有兩種思路。
一是利用用戶代理UserAgent來判斷瀏覽器和OS的版本,因為各個平臺和瀏覽器的UA都不一樣。但是這種方法存在一個局限性,由于各方面的原因,瀏覽器的UA并不是一個簡單的字符串,而是包含了各種信息的復雜字符串,而且由于UA可以被客戶端修改,因此這種檢測方法并不完全準確。以下是我的UA,大家可以猜猜我的瀏覽器和操作系統(tǒng)各是什么版本的。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
二就是通過各個瀏覽器之間實現(xiàn)的不同來判斷。比如說只有IE瀏覽器支持ActiveX控件,因此通過在JavaScript代碼中查看瀏覽器是否存在ActiveX控件屬性即可判斷該瀏覽器是否是IE瀏覽器。這種方法的優(yōu)點是檢測準確,而且相比檢測UA來說速度更快。但是由于這種方法以來瀏覽器的具體實現(xiàn),因此一旦瀏覽器升級換代,檢測方法可能就失效了。
使用platform庫
platform是一個檢測瀏覽器和操作系統(tǒng)版本的JavaScript庫。這里是它的Github地址:https://github.com/bestiejs/platform.js 。將它添加到自己的項目中也非常容易,下載項目中的platform.js文件然后添加到自己的項目中,然后在html文件中添加<script src="platform.js"></script>即可。
我電腦是Windows10 64位操作系統(tǒng),使用的是Chrome 50 64位瀏覽器。以下是platform.js在我瀏覽器上的運行結(jié)果。你也可以將platform.js導入到自己的網(wǎng)頁中,然后在F12開發(fā)者模式中在控制臺中查看結(jié)果。
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
產(chǎn)品的制造商
null
platform.name
瀏覽器名稱
Chrome
platform.parse([ua=navigator.userAgent])
這是一個方法,傳入的參數(shù)是一個UA對象或者字符串,會返回該UA對應的platform對象。
platform.prerelease
瀏覽器預發(fā)布標志,可能為alpha或者beta。
null
platform.product
瀏覽器的產(chǎn)品名稱
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
返回一個操作系統(tǒng)對象,包含操作系統(tǒng)的各個屬性
platform.os.architecture
操作系統(tǒng)的體系結(jié)果,32還是64
64
platform.os.family
操作系統(tǒng)家族
Windows NT
platform.os.toString()
返回操作系統(tǒng)字符串
Windows NT 10.0 64-bit
platform.os.version
操作系統(tǒng)版本
10.0
總結(jié)
以上是生活随笔為你收集整理的利用platform库获取浏览器和操作系统版本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经常梦到蛇会怎么样
- 下一篇: 我看objective-C --不要把o