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 相关文章推荐
javascript 面向对象全新理练之原型继承
Dec 03 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
jQuery超酷平面式时钟效果代码分享
Mar 30 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
Oct 19 Javascript
vue中各组件之间传递数据的方法示例
Jul 27 Javascript
Vue的watch和computed方法的使用及区别介绍
Sep 06 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
三步实现ionic3点击退出app程序
Sep 17 Javascript
小程序使用wxs解决wxml保留2位小数问题
Dec 13 Javascript
javascript History对象原理解析
Feb 17 Javascript
详解Vue2的diff算法
Jan 06 Vue.js
基于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操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
vuex实现购物车功能
2020/06/28 Javascript
python实现图像识别功能
2018/01/29 Python
详解python里的命名规范
2018/07/16 Python
python监控nginx端口和进程状态
2019/09/06 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
网站客服岗位职责
2014/04/05 职场文书
星级党支部申报材料
2014/05/31 职场文书
法人委托书
2014/07/31 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技