封装好的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实现Sleep函数的代码
Mar 04 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
Sep 03 Javascript
jQuery弹出层插件popShow用法示例
Jan 23 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
小程序实现多选框功能
Oct 30 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
微信小程序实现分享朋友圈的图片功能示例
Jan 18 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
详解JS预解析原理
Jun 16 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 获取文件行数的方法总结
2016/10/11 PHP
php中this关键字用法分析
2016/12/07 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
angular分页指令操作
2017/01/09 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
在Python的Django框架中创建语言文件
2015/07/27 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
关于幼儿的自我评价
2013/12/18 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS