JS判断客户端是手机还是PC的2个代码


Posted in Javascript onApril 12, 2014

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";
 }
}

这篇文章就介绍到这了,具体的也可以参考下面的文章。

Javascript 相关文章推荐
网页里控制图片大小的相关代码
Jun 25 Javascript
javascript读取xml
Nov 04 Javascript
用户注册常用javascript代码
Aug 29 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
setTimeout内不支持jquery的选择器的解决方案
Apr 28 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
RequireJS简易绘图程序开发
Oct 28 Javascript
快速处理vue渲染前的显示问题
Mar 05 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
JS实现省市县三级下拉联动
Apr 10 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
关于Node.js中频繁修改代码重启服务器的问题
Oct 15 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
Apr 12 #Javascript
jQuery中阻止冒泡事件的方法介绍
Apr 12 #Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 #Javascript
javascript事件冒泡详解和捕获、阻止方法
Apr 12 #Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 #Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 #Javascript
瀑布流布局代码一例
Apr 11 #Javascript
You might like
深入php处理整数函数的详解
2013/06/09 PHP
php使用google地图应用实例
2014/12/31 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
对python Tkinter Text的用法详解
2018/10/11 Python
Python中turtle库的使用实例
2019/09/09 Python
Python 导入文件过程图解
2019/10/15 Python
python3实现弹弹球小游戏
2019/11/25 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
Python Django路径配置实现过程解析
2020/11/05 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
排查整治工作方案
2014/06/09 职场文书
企业宗旨标语
2014/06/10 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
绵山导游词
2015/02/05 职场文书
大学生英文求职信范文
2015/03/19 职场文书
《观察物体》教学反思
2016/02/17 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
Redis基本数据类型List常用操作命令
2022/06/01 Redis