封装好的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 相关文章推荐
js类中的公有变量和私有变量
Jul 24 Javascript
JavaScript 学习笔记(五)
Dec 31 Javascript
在chrome中window.onload事件的一些问题
Mar 01 Javascript
js bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
如何使用jquery easyui创建标签组件
Nov 18 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
用JavaScript做简易的购物车的代码示例
Oct 20 Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 Javascript
mpvue实现微信小程序快递单号查询代码
Apr 03 Javascript
vue和H5 draggable实现拖拽并替换效果
Jul 29 Javascript
vue离开当前页面触发的函数代码
Sep 01 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代码的53条建议
2008/03/27 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
JsRender实用入门教程
2014/10/31 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
python实现QQ批量登录功能
2019/06/19 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
什么是岗位职责
2013/11/12 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
女生抽烟检讨书
2014/10/05 职场文书
2014年质检员工作总结
2014/11/18 职场文书
车队安全员岗位职责
2015/02/15 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
python 学习GCN图卷积神经网络
2022/05/11 Python
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS