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判断是否为手机浏览器相关推荐
- js判断是否在微信浏览器中打开
js判断是否在微信浏览器中打开 function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroM ...
- Js判断是否在微信浏览器中打开和微信版本号
一.判断微信版本号 var wechatInfo = navigator.userAgent.match(/MicroMessenger\\/([\\d\\.]+)/i) ; if( !wechatI ...
- js 判断是什么类型浏览器
一.js 判断是什么类型浏览器 // firefox if ( window.sidebar && "object" == typeof( window.sideb ...
- 原生js判断iPhoneX系列手机型号
#原生js判断iPhoneX系列手机型号 static isIphone() {return /iphone/gi.test(window.navigator.userAgent)}static is ...
- js判断是否是ie浏览器且给出ie版本
之前懒得写判断ie版本js,因为网上关于这方面的代码太多了,所以从网上拷贝了一个,放到项目上才发现由于时效性的问题,代码不生效.就自己写一个吧. 怎么去看浏览器的内核等信息 ---- js的全局对象w ...
- php 判断浏览器是ie,js判断是否是ie浏览器
怎么去看浏览器的内核等信息 ---- js的全局对象window子属性navigator.userAgent,这个属性是包含了浏览器信息的相关信息,包括我们需要的浏览器内核 navigator.use ...
- 过http user-agent判断是否为手机浏览器
我们做Web开发的时候,常常需要判断用户是否是使用手机访问网站,从而决定如何页面任何展示给用户,以提高用户体验,这时需要用到判断浏览器类型的代码: 下面PHP函数可以根据http user-agent ...
- php 判断是否为安卓,通过http user-agent判断是否为手机浏览器
我们做Web一很等指似很一者下插近直好一的的有段文,开发的时候,常常需要判断用户是否是使用手机访问网站,从而决定如何页面任何展示给用户,以提高用户体验,这时需要用到判断浏览器类型的代码调代求学功解宗维 ...
- php http agent,PHP通过http头user-agent判断是否为手机浏览器
下面PHP自定义函数可以根据http头user-agent判断是否为手机访问,如果是则返回true: /** * 判断是否是通过手机访问 * @return bool 是否是移动设备 */ publi ...
- js 判断当前的手机系统类型
用 js对当前的手机系统进行判断,如果是 安卓系统,当在app中下载应用或者提示应用时,都显示为安卓, 同样ios也是这个显示道理. 不啰嗦,直接上代码: //判断手机型号 var u = navig ...
最新文章
- MVC3.0 Razor实现Ajax数据分页
- 自动驾驶「无视」障碍物:百度研究人员攻陷激光雷达
- win7电脑0x000007b蓝屏怎么办
- servlet的应用------request对象和bean实体的反射关系
- >>’ should be ‘> >’ within a nested template argument list
- 神经网络模型压缩优化方法
- 【Linux】进程间通信之消息队列
- 高级口译 WordList1
- 8个成语接龙首尾相连_首尾相连成语接龙
- 怎么在html模板里加图片,页面中添加图片模块并编辑
- 第1章 Dev C++的使用
- WIN7 直装版安装教程
- 有关安装vuex报错error found vue@2.6.14及有关vue搭建项目问题
- 产品经理要了解的运营知识
- Linux学习笔记——软件安装
- Redis 性能优化 —— 内存碎片
- pdf转excel表格怎么做?这3种方法简单又方便
- python制作网页挂机_一个用Python写的简易挂机锁
- Tensorflow:基于LSTM生成藏头诗
- PIC单片机485通讯
热门文章
- WINDOWS PHONE死于自己不兼容
- C++模板实现,支持多维,安全数组的完整代码
- linux信号常用函数
- mysql 递归查找父节点_MySQL递归查询父子节点
- C# XML加载屏蔽注释 忽略注释的加载
- mongodb dbref java_Spring DATA MongoDB @DBref查询,or和and联合查询
- matlab gui 钢琴,基于MATLAB中的GUI设计的钢琴界面设计并能发声
- android 8.0获取通知权限,Android8.0通知权限适配
- pcb设计单点接地示意图_EMC设计之接地、PCB布局布线、屏蔽设计
- 当前日期增加自然月(比如当前时间为3月31号,加上1个月,预期结果是4月30日,但是输出了5月1日)...