js判断手机端(Android手机还是iPhone手机)


Posted in Javascript onJuly 22, 2015

网上常用的代码

/**
 * [isMobile 判断平台]
 * @param test:	0:iPhone	1:Android
 */
function ismobile(test){
	var u = navigator.userAgent, app = navigator.appVersion;
	if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
	 if(window.location.href.indexOf("?mobile")<0){
	  try{
	   if(/iPhone|mac|iPod|iPad/i.test(navigator.userAgent)){
	   	return '0';
	   }else{
	   	return '1';
	   }
	  }catch(e){}
	 }
	}else if( u.indexOf('iPad') > -1){
		return '0';
	}else{
		return '1';
	}
};

使用方法:

var pla=ismobile(1);

如果pla返回的是0:iPhone 1:Android

代码一、

<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/i) || !!u.match(/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/), //是否为移动终端
   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()
}
if (browser.versions.iPhone || browser.versions.iPad || browser.versions.ios) {
window.location.href = "https://3water.com";
}
if (browser.versions.android) {
window.location.href = "http://www.qq.com";
}
</script>

如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad。iPad 使用的是 Safari Mobile 浏览器,他的的 User Agent 是:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

Javascript代码
function is_iPad(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/iPad/i)=="ipad") {
return true;
} else {
return false;
}
}
因此,判断ipad,iphone,android的代码为:

<script type="text/javascript"> 
var bForcepc = fGetQuery("dv") == "pc"; 
function fBrowserRedirect(){ 
 var sUserAgent = navigator.userAgent.toLowerCase(); 
 var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; 
 var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; 
 var bIsMidp = sUserAgent.match(/midp/i) == "midp"; 
 var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; 
 var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb"; 
 var bIsAndroid = sUserAgent.match(/android/i) == "android"; 
 var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce"; 
 var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile"; 
 if(bIsIpad){ 
 var sUrl = location.href; 
 if(!bForcepc){ 
  window.location.href = "http://m.3water.com/?ipad"; 
 } 
 } 
 if(bIsIphoneOs || bIsAndroid){ 
 var sUrl = location.href; 
 if(!bForcepc){ 
  window.location.href = "http://m.3water.com/?iphone"; 
 } 
 } 
 if(bIsMidp||bIsUc7||bIsUc||bIsCE||bIsWM){ 
 var sUrl = location.href; 
 if(!bForcepc){ 
  window.location.href = "http://m.3water.com/"; 
 } 
 } 
} 
function fGetQuery(name){//获取参数值 
 var sUrl = window.location.search.substr(1); 
 var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)")); 
 return (r == null ? null : unescape(r[2])); 
} 
function fShowVerBlock(){ 
 if(bForcepc){ 
 document.getElementById("dv_block").style.display = "block"; 
 } 
 else{ 
 document.getElementById("ad_block").style.display = "block"; 
 } 
} 
fBrowserRedirect(); 
</script>
Javascript 相关文章推荐
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
javascript定义变量时有var和没有var的区别探讨
Jul 21 Javascript
js控制输入框获得和失去焦点时状态显示的方法
Jan 30 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
微信小程序 教程之列表渲染
Oct 18 Javascript
Angularjs分页查询的实现
Feb 24 Javascript
element-ui 表格数据时间格式化的方法
Aug 24 Javascript
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
May 21 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
Jul 21 #Javascript
Javascript实现获取及设置光标位置的方法
Jul 21 #Javascript
详解参数传递四种形式
Jul 21 #Javascript
jquery实现Ctrl+Enter提交表单的方法
Jul 21 #Javascript
jQuery实现html元素拖拽
Jul 21 #Javascript
异步安全加载javascript文件的方法
Jul 21 #Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 #Javascript
You might like
文章推荐系统(三)
2006/10/09 PHP
下载文件的点击数回填
2006/10/09 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python单例模式实例分析
2015/04/08 Python
python获取目录下所有文件的方法
2015/06/01 Python
python实现的简单FTP上传下载文件实例
2015/06/30 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
应届电子商务毕业自荐书范文
2014/02/11 职场文书
诚信考试标语
2014/06/24 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
写给同事的离职感言
2015/08/04 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
手把手教你导入Go语言第三方库
2021/08/04 Golang
Redis如何实现分布式锁
2021/08/23 Redis
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技