JS判断Android、iOS或浏览器的多种方法(四种方法)


Posted in Javascript onJune 29, 2017

第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端。

代码如下:

<script type="text/javascript">
  var u = navigator.userAgent;
  var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
  var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  alert('是否是Android:'+isAndroid);
  alert('是否是iOS:'+isiOS);
</script>

第二种:检查是否是移动端(Mobile)、ipad、iphone、微信、QQ等。

<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.*/), //是否为移动终端
      ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
      android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
      iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
      iPad: u.indexOf('iPad') > -1, //是否iPad
      webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
      weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
      qq: u.match(/\sQQ/i) == " qq" //是否QQ
    };
  }(),
  language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
</script>

使用方法:

//判断是否IE内核 
if(browser.versions.trident){ alert(“is IE”); } 
//判断是否webKit内核 
if(browser.versions.webKit){ alert(“is webKit”); } 
//判断是否移动端 
if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert(“移动端”); }

检测浏览器语言

currentLang = navigator.language; //判断除IE外其他浏览器使用语言 
if(!currentLang){//判断IE浏览器使用语言 
currentLang = navigator.browserLanguage; 
} 
alert(currentLang);

第三种:判断iPhone|iPad|iPod|iOS|Android客户端,来自http://www.fufuok.com/JS-iphone-android.html

if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS
  //alert(navigator.userAgent); 
  window.location.href ="iPhone.html";
} else if (/(Android)/i.test(navigator.userAgent)) {  //判断Android
  //alert(navigator.userAgent); 
  window.location.href ="Android.html";
} else { //pc
  window.location.href ="pc.html";
};

第四种:判断pc还是移动端

<script>
//判断是否手机端访问
  var userAgentInfo = navigator.userAgent.toLowerCase();
  var Agents = ["android", "iphone",
        "symbianos", "windows phone",
        "ipad", "ipod"];
  var ly=document.referrer; //返回导航到当前网页的超链接所在网页的URL
  for (var v = 0; v < Agents.length; v++) {
    if (userAgentInfo.indexOf(Agents[v]) >= 0&&(ly==""||ly==null)) {
      this.location.href='http://m.***.com'; //wap端地址
    }
  }
</script>

以上所述是小编给大家介绍的JS判断Android、iOS或浏览器的多种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
几款极品的javascript压缩混淆工具
May 16 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
Mar 05 Javascript
原生js和jquery分别实现横向导航菜单效果
May 13 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
Apr 17 Javascript
详解webpack分包及异步加载套路
Jun 29 #Javascript
JavaScript之map reduce_动力节点Java学院整理
Jun 29 #Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
Jun 29 #Javascript
JavaScript之iterable_动力节点Java学院整理
Jun 29 #Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 #Javascript
JavaScript之面向对象_动力节点Java学院整理
Jun 29 #Javascript
JavaScript之json_动力节点Java学院整理
Jun 29 #Javascript
You might like
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
php xml实例 留言本
2009/03/20 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
在Python中编写数据库模块的教程
2015/04/29 Python
Python实现telnet服务器的方法
2015/07/10 Python
Python 3中的yield from语法详解
2017/01/18 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
大专应届生个人简历的自我评价
2013/10/15 职场文书
毕业研究生的自我鉴定
2013/11/30 职场文书
大学生专科学习生活的自我评价
2013/12/07 职场文书
软件项目实施计划书
2014/05/02 职场文书
差生评语大全
2014/05/04 职场文书
大学生赌博检讨书
2014/09/22 职场文书
重阳节活动主持词
2015/07/04 职场文书
学生安全责任协议书
2016/03/22 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python