Js 获取、判断浏览器版本信息的简单方法


Posted in Javascript onAugust 08, 2016

Navigator 对象包含有关浏览器的信息:

•appCodeName -- 浏览器代码名的字符串表示

•appName -- 官方浏览器名的字符串表示

•appVersion -- 浏览器版本信息的字符串表示

•cookieEnabled -- 如果启用cookie返回true,否则返回false

•javaEnabled -- 如果启用java返回true,否则返回false

•platform -- 浏览器所在计算机平台的字符串表示

•plugins -- 安装在浏览器中的插件数组

•taintEnabled -- 如果启用了数据污点返回true,否则返回false

•userAgent -- 用户代理头的字符串表示

navigator中最重要的是userAgent属性,返回包含浏览器版本等信息的字符串;

cookieEnabled也很重要,使用它可以判断用户浏览器是否开启cookie。

javaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断(版本只能通过分析userAgent获得);

只有在浏览器类型 和 浏览器版本都判断出后,才能处理兼容性问题。

1、通过userAgent中的特征来判断浏览器类型及版本(常用、保险做法)

function getBrowserInfo() {
var Sys = {};

var ua = navigator.userAgent.toLowerCase();

var s; (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :

(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :

(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :

(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :

(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;


if(Sys.ie) {


return 'IE: ' + Sys.ie;

}

if(Sys.firefox) {


return 'Firefox: ' + Sys.firefox;

}

if(Sys.chrome) {


return 'Chrome: ' + Sys.chrome;

}

if(Sys.opera) {


return 'Opera: ' + Sys.opera;

}

if(Sys.safari) {


return 'Safari: ' + Sys.safari;

}
} 
var browser = getBrowserInfo() ;
var verinfo = (browser+"").replace(/[^0-9.]/ig, "");   // 版本号

注意:一些浏览器的userAgent属性值中Chrome、Safari皆有,是因为Chrome的userAgent还包含了Safari的特征,因此这可能是Chrome可运行Safari浏览器应用的基础的原因。

2、通过各浏览器独有特性来分辨浏览器(需注意:这些特征可能会随浏览器版本而变化,或是其他浏览器也就可能跟着加入该特性,从而导致判断失败)

IE:只有IE支持创建ActiveX控件,所以ActiveXObject函数是其他浏览器没有的。只需判断window对象存在 ActiveXObject函数,就明确判断出当前浏览器是IE。

Firefox:FF中的DOM元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小。这是Firefox独有的,判断它即可分辨当前浏览器是Firefox。(IE对应的中是 getBoundingClientRect函数)

Opera:Opera提供了专门的浏览器标志-- window.opera属性。

Safari:openDatabase函数是其他浏览器没有的,可做为判断Safari的标志。

Chrome:和FF一样都一个MessageEvent函数,但Chrome并没有FF的getBoxObjectFor 函数,根据这两个条件可判断Chrome浏览器。

var Sys = {};
var ua = navigator.userAgent.toLowerCase();
if(window.ActiveXObject) {
Sys.ie = ua.match(/msie ([\d.]+)/)[1]
}else if(document.getBoxObjectFor) {

Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
}else if(window.MessageEvent && !document.getBoxObjectFor) {

Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]
}else if(window.opera) {

Sys.opera = ua.match(/opera.([\d.]+)/)[1]
}else if(window.openDatabase) {

Sys.safari = ua.match(/version\/([\d.]+)/)[1];
}

水平有限,文中错误不妥在所难免,欢迎批评指正建议评论。文章将不定期修改完善斧正。谢谢!

以上这篇Js 获取、判断浏览器版本信息的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 1.42 checkbox 全选和反选代码
Mar 27 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
May 13 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
jquery中animate的stop()方法作用实例分析
Jan 30 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
Jan 04 Javascript
js实现密码强度检测【附示例】
Mar 30 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
Aug 01 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
ES6 javascript中class类的get与set用法实例分析
Oct 30 Javascript
Vue中对比scoped css和css module的区别
May 17 Javascript
JS使用new操作符创建对象的方法分析
May 30 Javascript
基于BootStrap实现局部刷新分页实例代码
Aug 08 #Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 #Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
Aug 08 #Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 #Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 #Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 #Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 #Javascript
You might like
php将金额数字转化为中文大写
2015/07/09 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
php创建类并调用的实例方法
2019/09/25 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
web前端开发也需要日志
2010/12/09 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
Python 开发Activex组件方法
2009/11/08 Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
详解KMP算法以及python如何实现
2020/09/18 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
《桥》教学反思
2014/04/09 职场文书
森林病虫害防治方案
2014/06/02 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
行政复议答复书
2015/07/01 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
创业计划书详解
2019/07/19 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python