zoukankan      html  css  js  c++  java
  • JS判断客户端是手机还是PC的2个代码(转)

    转载自:http://www.jb51.net/article/48939.htm

    Javascript 判断客户端是否为 PC 还是手持设备,有时候项目中需要用到,很方便的检测,源生的哦,方法一共有两种

    1、第一种:

    function IsPC() {
        var userAgentInfo = navigator.userAgent;
        var Agents = ["Android", "iPhone",
                    "SymbianOS", "Windows Phone",
                    "iPad", "iPod"];
        var flag = true;
        for (var v = 0; v < Agents.length; v++) {
            if (userAgentInfo.indexOf(Agents[v]) > 0) {
                flag = false;
                break;
            }
        }
        return flag;
    }

    2、第二种:

    function browserRedirect() {
        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 || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) ){
            window.location.href=B页面;
        }
    }
    browserRedirect();

    百度的判断代码

    function uaredirect(f) {
     try {
      if (document.getElementById("bdmark") != null) {
       return
      }
      var b = false;
      if (arguments[1]) {
       var e = window.location.host;
       var a = window.location.href;
       if (isSubdomain(arguments[1], e) == 1) {
        f = f + "/#m/" + a;
        b = true
       } else {
        if (isSubdomain(arguments[1], e) == 2) {
         f = f + "/#m/" + a;
         b = true
        } else {
         f = a;
         b = false
        }
       }
      } else {
       b = true
      }
      if (b) {
       var c = window.location.hash;
       if (!c.match("fromapp")) {
        if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|SymbianOS)/i))) {
         location.replace(f)
        }
       }
      }
     } catch(d) {}
    }
    function isSubdomain(c, d) {
     this.getdomain = function(f) {
      var e = f.indexOf("://");
      if (e > 0) {
       var h = f.substr(e + 3)
      } else {
       var h = f
      }
      var g = /^www./;
      if (g.test(h)) {
       h = h.substr(4)
      }
      return h
     };
     if (c == d) {
      return 1
     } else {
      var c = this.getdomain(c);
      var b = this.getdomain(d);
      if (c == b) {
       return 1
      } else {
       c = c.replace(".", "\.");
       var a = new RegExp("\." + c + "$");
       if (b.match(a)) {
        return 2
       } else {
        return 0
       }
      }
     }
    };

    使用方法:
    <SCRIPT type=text/javascript>uaredirect("手机站","WEB站");</SCRIPT> 另外一篇,感觉不如上面的好,不过大家可以参考下

    var browser_class = navigator.userAgent;
    var browser_class_name1 = browser_class.match("Mobile");
    var browser_class_name2 = browser_class.match("mobile");
    var location_url = window.location.href;
    if (browser_class_name1 != null || browser_class_name2 != null) {
     if (location_url.match("wap") == null) {
      window.location.href = "http://wap.xxxx.com";
     }
    } else {
     if (location_url.match("3g") != null || location_url.match("wap") != null) {
      window.location.href = "http://wap.xxxx.com";
     }
    }
  • 相关阅读:
    了解语言学习的四个阶段,孩子的英语学习更从容
    MySQL 修改字段类型或长度
    js中退出语句break,continue和return 比较
    PHP中unset,array_splice删除数组中元素的区别
    php判断一个数组是另一个数组的子集
    PHP实现一维数组转二维数组的方法
    基于 HTML5 WebGL 的 3D 网络拓扑图
    SQL 2008下载地址以及全新安装详细过程
    php从数组中取出一段 之 array_slice
    Linux命令:cp (copy)复制文件或目录
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/5663449.html
Copyright © 2011-2022 走看看