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 相关文章推荐
限制文本框输入N个字符的js代码
May 13 Javascript
js中的for如何实现foreach中的遍历
May 31 Javascript
浅析javascript中的DOM
Mar 01 Javascript
JavaScript函数使用的基本教程
Jun 04 Javascript
js实现简单的验证码
Dec 25 Javascript
浅谈Node.js:Buffer模块
Dec 05 Javascript
详解ES6中的let命令
Apr 05 Javascript
JS数组返回去重后数据的方法解析
Jan 03 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
浅谈Node模块系统及其模式
Nov 17 Javascript
5种 JavaScript 方式实现数组扁平化
Oct 05 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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
一个基于flask的web应用诞生(1)
2017/04/11 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
感恩母亲节演讲稿
2014/05/07 职场文书
经营理念标语
2014/06/21 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
Python实现信息管理系统
2022/06/05 Python
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python