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验证表单大全
Nov 25 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
Mar 26 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
window.location的重写及判断location是否被重写
Sep 04 Javascript
javascript实现模拟时钟的方法
May 13 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 Javascript
AngularJS自定义指令之复制指令实现方法
May 18 Javascript
Angular 容器部署的方法
Apr 17 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
Feb 26 Javascript
详解Vue 单文件组件的三种写法
Feb 19 Javascript
vue中touch和click共存的解决方式
Jul 28 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 生成饼图 三维饼图
2009/09/28 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
Python获取脚本所在目录的正确方法
2014/04/15 Python
python实现的希尔排序算法实例
2015/07/01 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
python实现共轭梯度法
2019/07/03 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
使用python实现对元素的长截图功能
2019/11/14 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
WSDL的操作类型主要有几种
2013/07/19 面试题
热能动力工程毕业生自荐信
2013/11/07 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
违反课堂纪律检讨书
2014/01/19 职场文书
辅导员评语
2014/05/04 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
公司会议开幕词
2015/01/29 职场文书
个人借条范本
2015/05/25 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript