使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)


Posted in Javascript onJanuary 04, 2017

WEB开发中如何通过Javascript来判断终端为PC、IOS(iphone)、Android呢?

可以通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端。

var u = navigator.userAgent;
 isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
 isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

下面一个比较全面的浏览器检查函数,提供更多的检查内容,你可以检查是否是移动端(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);

上面只是平时用的最多的一种方法,其实还有第二种方法:

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

不同的终端设备采用不同的响应策略,具体场景灵活运用把哈哈。

以上所述是小编给大家介绍的使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
详解Node.js如何开发命令行工具
Aug 14 Javascript
JQuery PHP图片在线裁剪实例
Jul 27 Javascript
vue-cli+webpack记事本项目创建
Apr 01 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
详解VUE 定义全局变量的几种实现方式
Jun 01 Javascript
Vue的Flux框架之Vuex状态管理器
Jul 30 Javascript
解读vue生成的文件目录结构及说明
Nov 27 Javascript
Vue仿支付宝支付功能
May 25 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
Vue中props的详解
May 16 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
Nov 11 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
Aug 04 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 #Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 #Javascript
深入理解Javascript中的valueOf与toString
Jan 04 #Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 #Javascript
js实现定时进度条完成后切换图片
Jan 04 #Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 #Javascript
深入理解JavaScript中的预解析
Jan 04 #Javascript
You might like
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python使用python-docx读写word文档
2019/08/26 Python
python清空命令行方式
2020/01/13 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
致800米运动员广播稿
2014/02/16 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL