封装好的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按位运算符的应用简析
Feb 04 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
jQuery ajax MD5实现用户注册即时验证功能
Oct 11 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
Feb 19 Javascript
Vue计算属性的使用
Aug 04 Javascript
如何重置vue打印变量的显示方式
Dec 06 Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 Javascript
mpvue实现左侧导航与右侧内容的联动
Oct 21 Javascript
VUE动态生成word的实现
Jul 26 Javascript
JavaScript字符串转数字的简单实现方法
Nov 27 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禁止个别IP访问网站
2013/10/30 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
js静态作用域的功能。
2006/12/25 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
对python模块中多个类的用法详解
2019/01/10 Python
Python和Go语言的区别总结
2019/02/20 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
医院护士求职自荐信格式
2013/09/21 职场文书
测绘工程本科生求职信
2013/10/10 职场文书
借款担保书范文
2014/05/13 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
街道社区活动报告
2015/02/05 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python