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 相关文章推荐
js关闭父窗口时关闭子窗口
Apr 01 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
JavaScript省市联动实现代码
Feb 15 Javascript
document.write的几点使用心得
May 14 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
javascript基本包装类型介绍
Apr 10 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
Nov 27 Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
Sep 30 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
Vue实例的对象参数options的几个常用选项详解
Nov 08 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
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
用原生js做单页应用
2017/01/17 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
JS实现图片拖拽交换效果
2018/11/30 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
python开发之str.format()用法实例分析
2016/02/22 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
python字符串判断密码强弱
2020/03/18 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
产品工艺师的岗位职责
2013/11/15 职场文书
应届生新闻编辑求职信
2013/11/19 职场文书
高三学生评语大全
2014/04/25 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
销售业务员岗位职责
2015/02/13 职场文书
初中历史教学反思
2016/02/19 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库