JS判断手机浏览器

判断原理:

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/Li-yuan/p/5069497.html

js判断是否为手机浏览器相关推荐

  1. js判断是否在微信浏览器中打开

    js判断是否在微信浏览器中打开 function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroM ...

  2. Js判断是否在微信浏览器中打开和微信版本号

    一.判断微信版本号 var wechatInfo = navigator.userAgent.match(/MicroMessenger\\/([\\d\\.]+)/i) ; if( !wechatI ...

  3. js 判断是什么类型浏览器

    一.js 判断是什么类型浏览器 // firefox if ( window.sidebar && "object" == typeof( window.sideb ...

  4. 原生js判断iPhoneX系列手机型号

    #原生js判断iPhoneX系列手机型号 static isIphone() {return /iphone/gi.test(window.navigator.userAgent)}static is ...

  5. js判断是否是ie浏览器且给出ie版本

    之前懒得写判断ie版本js,因为网上关于这方面的代码太多了,所以从网上拷贝了一个,放到项目上才发现由于时效性的问题,代码不生效.就自己写一个吧. 怎么去看浏览器的内核等信息 ---- js的全局对象w ...

  6. php 判断浏览器是ie,js判断是否是ie浏览器

    怎么去看浏览器的内核等信息 ---- js的全局对象window子属性navigator.userAgent,这个属性是包含了浏览器信息的相关信息,包括我们需要的浏览器内核 navigator.use ...

  7. 过http user-agent判断是否为手机浏览器

    我们做Web开发的时候,常常需要判断用户是否是使用手机访问网站,从而决定如何页面任何展示给用户,以提高用户体验,这时需要用到判断浏览器类型的代码: 下面PHP函数可以根据http user-agent ...

  8. php 判断是否为安卓,通过http user-agent判断是否为手机浏览器

    我们做Web一很等指似很一者下插近直好一的的有段文,开发的时候,常常需要判断用户是否是使用手机访问网站,从而决定如何页面任何展示给用户,以提高用户体验,这时需要用到判断浏览器类型的代码调代求学功解宗维 ...

  9. php http agent,PHP通过http头user-agent判断是否为手机浏览器

    下面PHP自定义函数可以根据http头user-agent判断是否为手机访问,如果是则返回true: /** * 判断是否是通过手机访问 * @return bool 是否是移动设备 */ publi ...

  10. js 判断当前的手机系统类型

    用 js对当前的手机系统进行判断,如果是 安卓系统,当在app中下载应用或者提示应用时,都显示为安卓, 同样ios也是这个显示道理. 不啰嗦,直接上代码: //判断手机型号 var u = navig ...

最新文章

  1. MVC3.0 Razor实现Ajax数据分页
  2. 自动驾驶「无视」障碍物:百度研究人员攻陷激光雷达
  3. win7电脑0x000007b蓝屏怎么办
  4. servlet的应用------request对象和bean实体的反射关系
  5. >>’ should be ‘> >’ within a nested template argument list
  6. 神经网络模型压缩优化方法
  7. 【Linux】进程间通信之消息队列
  8. 高级口译 WordList1
  9. 8个成语接龙首尾相连_首尾相连成语接龙
  10. 怎么在html模板里加图片,页面中添加图片模块并编辑
  11. 第1章 Dev C++的使用
  12. WIN7 直装版安装教程
  13. 有关安装vuex报错error found vue@2.6.14及有关vue搭建项目问题
  14. 产品经理要了解的运营知识
  15. Linux学习笔记——软件安装
  16. Redis 性能优化 —— 内存碎片
  17. pdf转excel表格怎么做?这3种方法简单又方便
  18. python制作网页挂机_一个用Python写的简易挂机锁
  19. Tensorflow:基于LSTM生成藏头诗
  20. PIC单片机485通讯

热门文章

  1. WINDOWS PHONE死于自己不兼容
  2. C++模板实现,支持多维,安全数组的完整代码
  3. linux信号常用函数
  4. mysql 递归查找父节点_MySQL递归查询父子节点
  5. C# XML加载屏蔽注释 忽略注释的加载
  6. mongodb dbref java_Spring DATA MongoDB @DBref查询,or和and联合查询
  7. matlab gui 钢琴,基于MATLAB中的GUI设计的钢琴界面设计并能发声
  8. android 8.0获取通知权限,Android8.0通知权限适配
  9. pcb设计单点接地示意图_EMC设计之接地、PCB布局布线、屏蔽设计
  10. 当前日期增加自然月(比如当前时间为3月31号,加上1个月,预期结果是4月30日,但是输出了5月1日)...