封装好的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 相关文章推荐
返回对象在当前级别中是第几个元素的实现代码
Jan 20 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
JavaScript静态类型检查工具FLOW简介
Jan 06 Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 Javascript
javascript中undefined与null的区别
Aug 16 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
May 03 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 Javascript
JS温故而知新之变量提升和时间死区
Jan 27 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 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 addslashes 函数详细分析说明
2009/06/23 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
谨慎使用PHP的引用原因分析
2012/09/06 PHP
php ios推送(代码)
2013/07/01 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python中的ctime()方法使用教程
2015/05/22 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
Farah官方网站:男士服装及配件
2019/11/01 全球购物
高中生自我鉴定范文
2013/10/30 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
公司奖励通知
2015/04/21 职场文书
小学班主任工作随笔
2015/08/15 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
Python图片处理之图片裁剪教程
2021/05/27 Python
mysql中关键词exists的用法实例详解
2022/06/10 MySQL