封装好的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 相关文章推荐
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
Mar 03 Javascript
Jquery节点遍历next与nextAll方法使用示例
Jul 22 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
Jquery on方法绑定事件后执行多次的解决方法
Jun 02 Javascript
详解js界面跳转与值传递
Nov 22 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
Nov 23 Javascript
Node 自动化部署的方法
Oct 17 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 Javascript
JavaScript实现简单验证码
Aug 24 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
JS+CSS实现动态时钟
Feb 19 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源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
Python实现翻转数组功能示例
2018/01/12 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
小学生班会演讲稿
2014/01/09 职场文书
活动倡议书范文
2014/05/13 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
中小学生学籍证明
2014/10/25 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers