封装好的js判断操作系统与浏览器代码分享


Posted in Javascript onJanuary 09, 2015

摘要:

对于前端开发我们最重要的工作就是兼容性,系统的兼容性,浏览器的兼容性等等。今天分享一个我在项目中封装的判断操作系统与浏览器的方法。

操作系统:

var os = (function() {
  var UserAgent = navigator.userAgent.toLowerCase();
  return {
    isIpad     : /ipad/.test(UserAgent),
    isIphone    : /iphone os/.test(UserAgent),
    isAndroid    : /android/.test(UserAgent),
    isWindowsCe   : /windows ce/.test(UserAgent),
    isWindowsMobile : /windows mobile/.test(UserAgent),
    isWin2K     : /windows nt 5.0/.test(UserAgent),
    isXP      : /windows nt 5.1/.test(UserAgent),
    isVista     : /windows nt 6.0/.test(UserAgent),
    isWin7     : /windows nt 6.1/.test(UserAgent),
    isWin8     : /windows nt 6.2/.test(UserAgent),
    isWin81     : /windows nt 6.3/.test(UserAgent)
  };
}());

如果要判断系统是否是iPad,只需要判断if(os.isIpad) {}.

浏览器:
 

var bw = (function() {
  var UserAgent = navigator.userAgent.toLowerCase();
  return {
    isUc   : /ucweb/.test(UserAgent), // UC浏览器
    isChrome : /chrome/.test(UserAgent.substr(-33,6)), // Chrome浏览器
    isFirefox : /firefox/.test(UserAgent), // 火狐浏览器
    isOpera  : /opera/.test(UserAgent), // Opera浏览器
    isSafire : /safari/.test(UserAgent) && !/chrome/.test(UserAgent), // safire浏览器
    is360   : /360se/.test(UserAgent), // 360浏览器
    isBaidu  : /bidubrowser/.test(UserAgent), // 百度浏览器
    isSougou : /metasr/.test(UserAgent), // 搜狗浏览器
    isIE6   : /msie 6.0/.test(UserAgent), // IE6
    isIE7   : /msie 7.0/.test(UserAgent), // IE7
    isIE8   : /msie 8.0/.test(UserAgent), // IE8
    isIE9   : /msie 9.0/.test(UserAgent), // IE9
    isIE10  : /msie 10.0/.test(UserAgent), // IE10
    isIE11  : /msie 11.0/.test(UserAgent), // IE11
    isLB   : /lbbrowser/.test(UserAgent), // 猎豹浏览器

 isWX   : /micromessenger/.test(UserAgent), // 微信内置浏览器
    isQQ   : /qqbrowser/.test(UserAgent) // QQ浏览器
  };
}());

]

小结:

浏览器都是本人亲自测试的,可能会有问题的是chrome浏览器,因为大部分浏览器都是使用WebKit内核,所以我就把chrome的navigator截取出来区分。如果以后chrome的navigator的信息位置或者chrome之后的长度发生改变就容易出现问题,但目前来看是可以的。

现在因为手机UC浏览器经常屏蔽百度的广告,但对google广告不屏蔽,我们可以加入判断是否为UC浏览器,不是就显示百度广告,是就显示google的广告

if(navigator.userAgent.indexOf('UCBrowser') > -1) {
alert("uc浏览器");
}else{
//不是uc浏览器执行的操作
}

其实具体的浏览器的一些特殊的操作可以通过

JS获取浏览器信息
浏览器代码名称:navigator.appCodeName
浏览器名称:navigator.appName
浏览器版本号:navigator.appVersion
对Java的支持:navigator.javaEnabled()
MIME类型(数组):navigator.mimeTypes
系统平台:navigator.platform
插件(数组):navigator.plugins
用户代理:navigator.userAgent

Javascript 相关文章推荐
prototype与jquery下Ajax实现的差别
Sep 13 Javascript
jquery checkbox全选、取消全选实现代码
Mar 05 Javascript
基于jQuery的360图片展示实现代码
Jun 14 Javascript
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
jQuery包裹节点用法完整示例
Sep 13 Javascript
微信小程序 冒泡事件原理解析
Sep 27 Javascript
jQuery 筛选器简单操作示例
Oct 02 jQuery
JavaScript实现登录窗体
Jun 22 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 #Javascript
使用javascript实现json数据以csv格式下载
Jan 09 #Javascript
js读取csv文件并使用json显示出来
Jan 09 #Javascript
微信JS接口汇总及使用详解
Jan 09 #Javascript
推荐一款jQuery插件模板
Jan 09 #Javascript
JavaScript中Cookie操作实例
Jan 09 #Javascript
使用javascript实现简单的选项卡切换
Jan 09 #Javascript
You might like
PHP基础知识介绍
2013/09/17 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
python中list循环语句用法实例
2014/11/10 Python
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
python的unittest测试类代码实例
2017/12/07 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
深入了解Python在HDA中的应用
2019/09/05 Python
python画环形图的方法
2020/03/25 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
Keras自定义IOU方式
2020/06/10 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
计算机专业毕业生求职信
2014/04/30 职场文书
关于环保的活动方案
2014/08/25 职场文书
个人委托书怎么写
2014/09/17 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
放假通知范文
2015/04/14 职场文书
java基础——多线程
2021/07/03 Java/Android