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 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
?牟┛途W扣了一??效果出?? target=
May 27 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
May 10 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Sep 26 Javascript
get(0).tagName获得作用标签示例代码
Oct 08 Javascript
关于延迟加载JavaScript
May 05 Javascript
jQuery mobile 移动web(4)
Dec 20 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 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/03 咖啡文化
php smarty模版引擎中的缓存应用
2009/12/11 PHP
PHP的加密方式及原理
2012/06/14 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
python实现简单登陆流程的方法
2018/04/22 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
Scrapy框架使用的基本知识
2018/10/21 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
keras多显卡训练方式
2020/06/10 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
全球精选男装和家居用品:Article
2020/04/13 全球购物
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
Python Django模型详解
2021/10/05 Python