JS判断手机浏览器(转)
转载地址: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判断手机浏览器(转)相关推荐
- js判断手机浏览器屏幕方向
/* js判断手机浏览器屏幕方向*/var direction = {__getOrientation: function () {if (window.orientation == 0 || win ...
- linux下浏览器如何登录微信,js判断手机浏览器操作系统和微信浏览器的方法
今天就为大家介绍一下用js判断手机客户端平台及系统平台的方法: //手机端判断各个平台浏览器及操作系统平台 function checkPlatform(){ if(/android/i.test(n ...
- JS判断手机浏览器是横屏or竖屏
移动端的浏览器一般都支持window.orientation这个参数,通过这个参数可以判断出手机是处在横屏还是竖屏状态. 从而根据实际需求而执行相应的程序. 通过添加监听事件onorientation ...
- JS判断手机浏览器,并跳转到手机端网页
在js代码中插入以下代码片段 <script type="text/javascript">try {var urlhash = window.location.has ...
- js判断手机上是否安装某APP
前两天,产品给我又给我提了一个需求,就是给我看了一下人家的功能,说我们也想要这个功能,于是,我就开始实现这个功能了..... js判断手机上是否安装某APP,如果有的话直接打开App,否则打开App ...
- js判断IE浏览器(包括IE11)
做web开发的,因为众所周知的原因,经常需要区别IE及非IE浏览器.其实js判断IE浏览器的方法网上一搜一大把. 这里我要说的是一个用起来比较简单好记且使用的方法,记录如下. 之前,js判断的方式都是 ...
- 判断手机浏览器终端设备
判断手机浏览器终端设备 var browser = {versions: function () {var u = navigator.userAgent, app = navigator.appVe ...
- html判断是否为ie浏览器,js判断IE浏览器(包括IE11)
做web开发的,因为众所周知的原因,经常需要区别IE及非IE浏览器.其实js判断IE浏览器的方法网上一搜一大把. 这里我要说的是一个用起来比较简单好记且使用的方法,记录如下. 之前,js判断的方式都是 ...
- html判断手机浏览器,JS判断浏览器iOS(iPhone)、Android手机移动端
通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端.网上搜索来的,比较简单: var u = navigator.userAgent; var isAndroid ...
- 判断手机浏览器还是桌面浏览器
目录 (1)使用navigator.userAgent (2)使用window.matchMedia() (3)使用react-device-detect (1)使用navigator.userAge ...
最新文章
- 咕泡学院:(1)唐宇迪python课程作业
- 海南岛渔民捞出“鱼雷”,竟是他国间谍机器人
- Kobolds and Catacombs 思维,模拟,前缀,后缀(沈阳)
- 7.12-7.19 id、w、who、last、lastb、lastlog
- Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
- linux6.0 安装教程,CentOS 6.0安装步骤
- JS节点树的一个实例
- minikube start 使用Hyper-V
- 人生三分之一的睡眠决定着另外三分之二的精彩
- Netlink 0007 --- 创建实现分析
- LeetCode 翻转字符串里的单词
- 【JAVA程序设计】(C00048)基于springboot酒店宾馆管理系统
- 【VUE】vue安装教程
- geek软件是干什么的_Geek软件下载工具使用说明.pdf
- 软件设计师笔记(信息安全)
- 研发漫画之二:救火还需纵火犯
- keydown与keypress的区别,组合键
- e签宝认证服务API PHP请求签名鉴权生成
- Koordinator 0.6:企业级容器调度系统解决方案,引入 CPU 精细编排、资源预留与全新的重调度框架
- 玩具总动员4/反斗奇兵4]
热门文章
- Mac VLC播放器怎么禁止使用硬件解码?
- 巧妙的实现 CSS 斜线
- CentOS 6.9之LVM创建,扩容
- openstack instance bootmgr is missing 问题 修复
- Ubuntu下Chrome打不开解决办法
- 设计图案之间关系的代码实现
- Apache站点下载大文件不完整原因及解决办法
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
- Alien Skin Exposure7滤镜软件功能作用
- Spring Boot 项目打成 .exe 程序,实战来了!