封装好的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 parseInt与Number函数的区别
Jan 21 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 Javascript
基于vue.js实现侧边菜单栏
Mar 20 Javascript
详解Vue组件之间的数据通信实例
Jun 17 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
在博客园博文中添加自定义右键菜单的方法详解
Feb 05 Javascript
浅谈javascript如何获取文件后缀名
Aug 07 Javascript
理解JavaScript中的对象
Aug 25 Javascript
原生js拖拽功能制作滑动条实例代码
Feb 05 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数组函数
2008/08/18 PHP
php支付宝接口用法分析
2015/01/04 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
机械工程学院大学生求职信
2014/05/25 职场文书
校园文明标语
2014/06/13 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书