转载地址:http://www.cnblogs.com/phphuaibei/archive/2011/12/09/2282570.html

判断原理:

JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另 一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的 版本一般只能通过分析浏览器的userAgent才能知道。

浏览器类型

⑴浏览器特有属性

⑵根据userAgent

浏览器版本

⑴根据userAgent

对于手机浏览器判断

1.如何判断是否为移动终端 利用正则match

匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile

安卓qq浏览器HD版 只有AppleWebKit

2手机语言版本的判断

使用navigator.browserLanguage 便可得出windows phone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<script type="text/javascript">
/*
* 智能机浏览器版本信息:
*
*/
  var browser={
    versions:function(){
           var u = navigator.userAgent, app = navigator.appVersion;
           return {//移动终端浏览器版本信息
                trident: u.indexOf('Trident') > -1, //IE内核
                presto: u.indexOf('Presto') > -1, //opera内核
                webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
                gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
                mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
                ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
                android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
                iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
                iPad: u.indexOf('iPad') > -1, //是否iPad
                webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
            };
         }(),
         language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln("语言版本: "+browser.language);
document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
document.writeln(" android终端: "+browser.versions.android);
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
</script>

比较特别的地方

UC浏览器没有安卓报头,只返回:linux ,这里粗略的根据linux来判断是安卓(前提必须满足是移动终端,UC这点是满足的)

安卓QQ浏览器HD版检测的结果是:mac, Safari,这个很是变态,自己看着处理吧

3个检测浏览器User-Agent信息的网站

三个在线网站,通过手机浏览器就可以在线检测,很是方便

1. http://whatsmyuseragent.com/

2. http://whatsmyua.com/

3. http://www.useragentstring.com/

参考文章:

Pc浏览器

http://www.jb51.net/article/17302.htm

http://www.bairuiw.com/front-end-skill/1346.html

手机浏览器

http://www.iundefined.com/development/344.html

http://www.cnblogs.com/dowinning/archive/2011/07/22/2113747.html

http://www.cnblogs.com/dowinning/archive/2011/07/22/2113981.html

http://luckerme.com/archives/1015.html

转载于:https://www.cnblogs.com/zyhblogs/p/4047745.html

JS判断手机浏览器(转)相关推荐

  1. js判断手机浏览器屏幕方向

    /* js判断手机浏览器屏幕方向*/var direction = {__getOrientation: function () {if (window.orientation == 0 || win ...

  2. linux下浏览器如何登录微信,js判断手机浏览器操作系统和微信浏览器的方法

    今天就为大家介绍一下用js判断手机客户端平台及系统平台的方法: //手机端判断各个平台浏览器及操作系统平台 function checkPlatform(){ if(/android/i.test(n ...

  3. JS判断手机浏览器是横屏or竖屏

    移动端的浏览器一般都支持window.orientation这个参数,通过这个参数可以判断出手机是处在横屏还是竖屏状态. 从而根据实际需求而执行相应的程序. 通过添加监听事件onorientation ...

  4. JS判断手机浏览器,并跳转到手机端网页

    在js代码中插入以下代码片段 <script type="text/javascript">try {var urlhash = window.location.has ...

  5. js判断手机上是否安装某APP

    前两天,产品给我又给我提了一个需求,就是给我看了一下人家的功能,说我们也想要这个功能,于是,我就开始实现这个功能了..... js判断手机上是否安装某APP,如果有的话直接打开App,否则打开App ...

  6. js判断IE浏览器(包括IE11)

    做web开发的,因为众所周知的原因,经常需要区别IE及非IE浏览器.其实js判断IE浏览器的方法网上一搜一大把. 这里我要说的是一个用起来比较简单好记且使用的方法,记录如下. 之前,js判断的方式都是 ...

  7. 判断手机浏览器终端设备

    判断手机浏览器终端设备 var browser = {versions: function () {var u = navigator.userAgent, app = navigator.appVe ...

  8. html判断是否为ie浏览器,js判断IE浏览器(包括IE11)

    做web开发的,因为众所周知的原因,经常需要区别IE及非IE浏览器.其实js判断IE浏览器的方法网上一搜一大把. 这里我要说的是一个用起来比较简单好记且使用的方法,记录如下. 之前,js判断的方式都是 ...

  9. html判断手机浏览器,JS判断浏览器iOS(iPhone)、Android手机移动端

    通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端.网上搜索来的,比较简单: var u = navigator.userAgent; var isAndroid ...

  10. 判断手机浏览器还是桌面浏览器

    目录 (1)使用navigator.userAgent (2)使用window.matchMedia() (3)使用react-device-detect (1)使用navigator.userAge ...

最新文章

  1. 咕泡学院:(1)唐宇迪python课程作业
  2. 海南岛渔民捞出“鱼雷”,竟是他国间谍机器人
  3. Kobolds and Catacombs 思维,模拟,前缀,后缀(沈阳)
  4. 7.12-7.19 id、w、who、last、lastb、lastlog
  5. Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
  6. linux6.0 安装教程,CentOS 6.0安装步骤
  7. JS节点树的一个实例
  8. minikube start 使用Hyper-V
  9. 人生三分之一的睡眠决定着另外三分之二的精彩
  10. Netlink 0007 --- 创建实现分析
  11. LeetCode 翻转字符串里的单词
  12. 【JAVA程序设计】(C00048)基于springboot酒店宾馆管理系统
  13. 【VUE】vue安装教程
  14. geek软件是干什么的_Geek软件下载工具使用说明.pdf
  15. 软件设计师笔记(信息安全)
  16. 研发漫画之二:救火还需纵火犯
  17. keydown与keypress的区别,组合键
  18. e签宝认证服务API PHP请求签名鉴权生成
  19. Koordinator 0.6:企业级容器调度系统解决方案,引入 CPU 精细编排、资源预留与全新的重调度框架
  20. 玩具总动员4/反斗奇兵4]

热门文章

  1. Mac VLC播放器怎么禁止使用硬件解码?
  2. 巧妙的实现 CSS 斜线
  3. CentOS 6.9之LVM创建,扩容
  4. openstack instance bootmgr is missing 问题 修复
  5. Ubuntu下Chrome打不开解决办法
  6. 设计图案之间关系的代码实现
  7. Apache站点下载大文件不完整原因及解决办法
  8. 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
  9. Alien Skin Exposure7滤镜软件功能作用
  10. Spring Boot 项目打成 .exe 程序,实战来了!