做装修的网站有哪些,做外贸无网站如何做,长春网站建设及推广,杭州网页设计招聘网原生方法检测 网站获取用户的浏览器和操作系统版本是一个很常见的需求#xff0c;但是细说起来这个功能的实现并不简单。一般情况下有两种思路。 一是利用用户代理UserAgent来判断浏览器和OS的版本#xff0c;因为各个平台和浏览器的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 srcplatform.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.102proto: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([uanavigator.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