浏览器检测是在工作中经常用到的,如果只是简单判断当前是什么浏览器的话可以通过window.navigator.useragent这样的js来直接判断就可以了!

但是针对浏览器版本要求比较高的时候,如果只是单纯的判断浏览器的名字的话还不能解决问题,这时候就要通过其他方式来实现!现有的jquery已经废弃了$.browser的使用,所以在这里我介绍一个叫做"浏览器嗅探器"的程序来实现!

代码如下:(BrowserDetect.js)

var BrowserDetect = {init: function () {this.browser = this.searchString(this.dataBrowser) || "An unknown browser";this.version = this.searchVersion(navigator.userAgent)|| this.searchVersion(navigator.appVersion)|| "an unknown version";this.OS = this.searchString(this.dataOS) || "an unknown OS";},searchString: function (data) {for (var i=0;i<data.length;i++)    {var dataString = data[i].string;var dataProp = data[i].prop;this.versionSearchString = data[i].versionSearch || data[i].identity;if (dataString) {if (dataString.indexOf(data[i].subString) != -1)return data[i].identity;}else if (dataProp)return data[i].identity;}},searchVersion: function (dataString) {var index = dataString.indexOf(this.versionSearchString);if (index == -1) return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser: [{string: navigator.userAgent,subString: "Chrome",identity: "Chrome"},{     string: navigator.userAgent,subString: "OmniWeb",versionSearch: "OmniWeb/",identity: "OmniWeb"},{string: navigator.vendor,subString: "Apple",identity: "Safari",versionSearch: "Version"},{prop: window.opera,identity: "Opera"},{string: navigator.vendor,subString: "iCab",identity: "iCab"},{string: navigator.vendor,subString: "KDE",identity: "Konqueror"},{string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.vendor,subString: "Camino",identity: "Camino"},{        // for newer Netscapes (6+)string: navigator.userAgent,subString: "Netscape",identity: "Netscape"},{string: navigator.userAgent,subString: "MSIE",identity: "Internet Explorer",versionSearch: "MSIE"},{string: navigator.userAgent,subString: "Gecko",identity: "Mozilla",versionSearch: "rv"},{         // for older Netscapes (4-)string: navigator.userAgent,subString: "Mozilla",identity: "Netscape",versionSearch: "Mozilla"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"},{string: navigator.platform,subString: "Mac",identity: "Mac"},{string: navigator.userAgent,subString: "iPhone",identity: "iPhone/iPod"},{string: navigator.platform,subString: "Linux",identity: "Linux"}]};
BrowserDetect.init();

使用方式如下:

这个js兼容非常不错!使用起来比较简单,而且功能强大!

浏览器嗅探器检测(BrowserDetect.js)程序神器使用相关推荐

  1. 浏览器硬件检测原生js检测是否支持 视屏 音频能力

    abilitytest.js 文件 在webrtc 项目中 需要判断浏览器是否支持 调用 视屏音频 功能 import {message } from 'antd';// 这种方式在各个浏览器都可以( ...

  2. js浏览器和浏览器插件检测的方法总结

    文/玄魂 前言 首次面对题目所示的需求的时候,头脑中没有任何概念,于是搜索,所有的中文结果都不是很满意.所幸老外的几篇文章还是很有参考价值,虽然最终没有解决我的问题,但是我还是把这几篇文章的内容作了抽 ...

  3. 《JavaScript高级程序设计》阅读笔记(十六):javascript检测浏览器和操作系统-detect.js...

    检测浏览器的方式 1.对象特征检测法:判断浏览器能力的通用方法.如果更关注浏览器的能力而不在乎它的实际身份,就可以使用这种检测方法.常见的原生Ajax写法中就用这种方法来创建XMLHttpReques ...

  4. js+jquery检测用户浏览器型号(包括对360浏览器的检测)

    做网站,js检测用户浏览器的版本,是经常要使用到,今天自己写了一个js,完成了对于一些常见浏览器的检测,但是,偏偏对于360浏览器的检测没有任 何办法,研究了一会儿,无果.无论是360安全浏览器,还是 ...

  5. vscode+node.js 调试js程序/edge浏览器调试javaScript/edge浏览器独立调试编辑并保存代码/浏览器内开发者工具element/console布局(focus Mode)

    文章目录 declaration vscode 对于javascript的支持 环境 使用node.js调试纯js代码 使用浏览器调试 试验代码 Note! edge浏览器独立调试编辑并保存代码 窗格 ...

  6. (附源码)springboot人体健康检测微信小程序 毕业设计 012142

    Springboot人体健康检测微信小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的人体健康检测小程序,主要为人们提供了方便的各项健康检测服务,包括健康数据编辑.健康科普.健康讨论.注册登录 ...

  7. 浏览器原理-v8引擎-js执行原理

    浏览器原理-v8引擎-js执行原理 js简介 js应用: js的应用很广泛 可以应用于web,移动端,小程序,桌面应用,后端开发等 web开发包括(原生js,react,vue,angular等) 移 ...

  8. 在浏览器中使用tensorflow.js进行人脸识别的JavaScript API

    作者 | Vincent Mühle 编译 | 姗姗 出品 | 人工智能头条(公众号ID:AI_Thinker) [导读]随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升.在 ...

  9. 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序

    物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...

  10. 【前端】跨浏览器事件处理程序EventUtil.js个人注释及详解

    <javascript高级程序设计>跨浏览器事件处理程序EventUtil.js个人注释 EventUtil.js // 跨浏览器事件处理程序封装 var EventUtil = {// ...

最新文章

  1. SpringBoot核心
  2. java socket plc 通信_三菱两个FX5U 通信和程序
  3. 经典算法——斐波那契数列
  4. loj6077. 「2017 山东一轮集训 Day7」逆序对
  5. vsftpd的参数说明和虚拟用户配置
  6. Python简单实现微博自动点赞
  7. Redis 如何使用 Bitmap
  8. 2019年数学建模美赛经验总结
  9. Mybatis“四大神兽”
  10. word会把字符串中的空格自动换成不换行空格(NBSP)
  11. Datakit.CrossManager.2023(2D/3D数据格式转换器)
  12. 计算机专业的英文简历范文带翻译,[网络工程师个人英文简历模板]英文简历范文带翻译...
  13. 二分法(yxc讲解+模板整理)
  14. 2021年危险化学品经营单位安全管理人员考试报名及危险化学品经营单位安全管理人员最新解析
  15. OC Bock的使用
  16. django_容联云_短信验证
  17. 程序员提高阅读代码能力的几个方法
  18. 工业智能网关BL110应用之13:实现三菱 PLC FX3S 接入华为云平台
  19. 【英语天天读】Advice to a Young Man
  20. Android 摄像头调用(不含拍照),kotlin开源

热门文章

  1. dhcp协议_什么是DHCP?总结DHCP优缺点和工作原理
  2. 电脑如何恢复声音_电脑不小心丢失照片如何恢复如初
  3. html调用一般处理程序方法,Web的初步篇:前台(HTML)和后台(一般处理程序)...
  4. c++ 多字节 转换为 unicode
  5. CSDN下载频道【2月热门资源TOP100】汇总
  6. JAVA 实现《超级玛丽》游戏
  7. 流氓软件的完全卸载的一些方法
  8. linux安装VLC播放器
  9. html切西瓜游戏源码,html5切水果源码(水果忍者)
  10. Whistle抓包详细使用教程