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 ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
Oct 20 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
Dec 04 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
js获取表格的行数和列数的方法
Oct 23 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
vue.js+Echarts开发图表放大缩小功能实例
Jun 09 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
Aug 03 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
详解vue axios二次封装
Jul 22 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
May 18 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
上海无线电三厂简史修改版
2021/03/01 无线电
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP中if和or运行效率对比
2014/12/12 PHP
php实现可运算的验证码
2015/11/10 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
解密Python中的描述符(descriptor)
2015/06/03 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
python实现微信防撤回神器
2019/04/29 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
信息管理员岗位职责
2013/12/01 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
怎样写家长意见
2015/06/04 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL