最近公司上线移动端,需要根据不同的系统跳转到不同的产品页面,百度后发现这一段代码很好用,不但可以判断当前是什么系统,还能知道当前浏览器是什么内核,移动端PC端都已测试无问题!

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.*/) || !! u.match(/AppleWebKit/), //是否为移动终端
                    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.ios || browser.versions.iPhone || browser.versions.iPad) {
            window.location.href = "http://www.baidu.com";//想要跳转的地址
        } else if (browser.versions.android) {
            window.location.href = "http://www.hao123.com";//想要跳转的地址
        }

还有另一种简单写法,对于简单只需要判断是什么系统的可以试试下面的这种方法

if (/android/i.test(navigator.userAgent)) {
            window.location.href = "http://www.hao123.com";//想要跳转的地址
        }

if (/ipad|iphone|mac/i.test(navigator.userAgent)) {
            window.location.href = "http://www.baidu.com";//想要跳转的地址
        }

如果还工区分当前系统是移动端和PC端则需要用下面的方法,第一种方式有一个mobile 可以区分PC端跟移动端,但是在mac上面不起作用,会判断成移动端,所以得用下面的笨方法,判断目前主流的移动手持设备来区分移动跟PC端

<img src="jcwy.png" alt="" class="tips" id="tipsid"/>

var nowclass=browserRedirect();  if(nowclass.bIsIpad||nowclass.bIsIphoneOs||nowclass.bIsMidp||nowclass.bIsUc7||nowclass.bIsUc||nowclass.bIsAndroid||nowclass.bIsCE||nowclass.bIsWM){
            if(nowclass.bIsIphoneOs||nowclass.bIsIpad||nowclass.bIsMidp){//如果是ios移动设备
                window.location.href = "ios需要跳转的地方";
                if(nowclass.bIsWX){//解决以微信内核浏览器打开无法直接跳转给出提示点击跳转至safari打开
                    document.getElementById("tipsid").style.display="block";
                }
            }
            else if(nowclass.bIsAndroid){//如果是android移动设备
                window.location.href = "android需要跳转的地方";
            }
        }
        else{
            window.location.href = "PC端跳转去的地方";
        }
       function browserRedirect() {
            var sUserAgent = navigator.userAgent.toLowerCase();
            var systemclass={};
            systemclass.bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
            systemclass.bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
            systemclass.bIsMidp = sUserAgent.match(/midp/i) == "midp";
            systemclass.bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
            systemclass.bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
            systemclass.bIsAndroid = sUserAgent.match(/android/i) == "android";
            systemclass.bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
            systemclass.bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
            systemclass.bIsWX=sUserAgent.match(/MicroMessenger/i)=="micromessenger";
            return systemclass;
        }

JS判断android ios系统 PC端和移动端的更多相关文章

  1. h5 js判断是IOS系统还是android系统

    function detect(){ var equipmentType = ""; var agent = navigator.userAgent.toLowerCase(); ...

  2. JS判断android/IOS,并执行回调函数

    判断类型: var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') ...

  3. JS判断当前设备是 PC IOS Andriod

    JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroi ...

  4. JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器

    JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器 var ua = navigator.userAgent; var browser = {}, weixin ...

  5. js判断用户是在PC端或移动端访问

    js如何判断用户是在PC端和还是移动端访问.  最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的体验.伴随Android平台的红火发展.不仅带动国内智能手机行业,而 ...

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

    第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端. 代码如下: <script type="text/javascript"> ...

  7. 如何使用js判断当前页面是pc还是移动端打开的

    1.利用了正则表达式和三目运算符,含义就是如果是移动端打开的话那就跳转到 "https:www.baidu.com/" ,如果不是就跳转到"http://new.baid ...

  8. js判断当前浏览器是pc端还是移动端

    根据用户的访问设备的不同来显示不同的页面样式,主要是判断移动设备还是电脑浏览器访问的. 下面给出js判断处理代码,以作参考. <script type="text/javascript ...

  9. js判断Android和Ios

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

随机推荐

  1. Wmware Player中Linux挂载U盘

    菜单(Player)中有一项是可移动设备,中选择U盘,然后选择连接(断开主机), 然后在命令行中敲入 fdisk -l 正常情况下是sda是硬盘的信息,然后将会看到一个单蹦的sdb4的信息(sdb4可 ...

  2. BZOJ4889:[TJOI2017]不勤劳的图书管理员

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...

  3. CF 949D Curfew——贪心(思路!!!)

    题目:http://codeforces.com/contest/949/problem/D 有二分答案的思路. 如果二分了一个答案,首先可知越靠中间的应该大约越容易满足,因为方便把别的房间的人聚集过 ...

  4. bzoj 4104 解密运算 —— 思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4104 一开始发现了给出的顺序是按这些末尾字符后面的后缀排序得到的: 然后发现可以一个一个把字 ...

  5. Jenkins中,执行py文件,python找包的路径(找不到自定义包的问题解决)

    问题:工程下自定义的包,python在执行时经常找不到包   python找包的路径:python安装路径下的lib包和PYTHONPATH下的包   可以使用[sys.path]打印出python找 ...

  6. selenium上传文件,怎么操作

    #通过os.path.abspath()方法,打开图片的绝对路径,然后,定位上传按钮,然后,send_keys()方法中,添加这个文件路径就可以了

  7. AAAAAA

    有可能被立案调查.暂停上市.退市风险警示*ST.特别处理ST的公司:银鸽投资(SH:600069).天山生物(SZ:300313).金贵银业(SZ:002716).美盛文化(SZ:002699).未名 ...

  8. [poj2019]Cornfields(二维RMQ)

    题意:给你一个n*n的矩阵,让你从中圈定一个小矩阵,其大小为b*b,有q个询问,每次询问告诉你小矩阵的左上角,求小矩阵内的最大值和最小值的差. 解题关键:二维st表模板题. 预处理复杂度:$O({n^ ...

  9. 面试题: 数据库笔试 sql操作 已看 上课的练习题50sql

    2018/5/31 oracle数据库面试笔试试题总结http://www.yjbys.com/qiuzhizhinan/show-308759.html 1/4Oracle数据库1.基础测试选择在部 ...

  10. Matcher的replaceAll ()/appendReplacement()/appendTail()详细举例

    直接上例子: package com.dajiangtai.djt_spider.util; import java.util.regex.Matcher;import java.util.regex ...