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 相关文章推荐
把input初始值不写value的具体实现方法
Jul 04 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
JavaScript window.location对象
Nov 14 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
Feb 26 Javascript
微信小程序 获取微信OpenId详解及实例代码
Oct 31 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
js实现彩色条纹滚动条效果
Mar 15 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
JavaScript的垃圾回收机制与内存管理
Aug 06 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 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 sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
移动端js图片查看器
2016/11/17 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python中存取文件的4种不同操作
2018/07/02 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
Python之字典对象的几种创建方法
2020/09/30 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
大学自我评价
2014/02/12 职场文书
学校课外活动总结
2014/05/08 职场文书
申论倡议书范文
2014/05/13 职场文书
铁路安全反思材料
2014/12/24 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
经费申请报告范文
2015/05/18 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
JS高级程序设计之class继承重点详解
2022/07/07 Javascript