封装好的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 CSS修改学习第一章 查找位置
Feb 19 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
Dec 24 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
Jan 04 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
Jan 13 Javascript
js中创建对象的几种方式
Feb 05 Javascript
Angular项目中$scope.$apply()方法的使用详解
Jul 26 Javascript
JS中跳出循环的示例代码
Sep 14 Javascript
vue配置多页面的实现方法
May 22 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
webpack3.0升级4.0的方法步骤
Apr 02 Javascript
vue实现路由懒加载的3种方法示例
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下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP源码之explode使用说明
2011/08/05 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
漂亮的提示信息(带箭头)
2007/03/21 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
内刊编辑求职自荐书范文
2014/02/19 职场文书
离职报告范文
2014/11/04 职场文书
交通事故代理词范文
2015/05/23 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript