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 相关文章推荐
jquery 提交值不为空的元素示例代码
May 10 Javascript
javascript获取下拉列表框当中的文本值示例代码
Jul 31 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 Javascript
js css+html实现简单的日历
Jul 14 Javascript
详解vue表单验证组件 v-verify-plugin
Apr 19 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
Sep 03 Javascript
使用Ajax实现无刷新上传文件
Apr 12 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数字格式化
2006/12/06 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
原生js实现随机点名
2020/07/05 Javascript
让python json encode datetime类型
2010/12/28 Python
Python实现类继承实例
2014/07/04 Python
Django框架封装外部函数示例
2019/05/28 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
大型会议接待方案
2014/03/01 职场文书
大学军训感言300字
2014/03/09 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python