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 相关文章推荐
$()JS小技巧
Jul 21 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
利用Jquery队列实现根据输入数量显示的动画
Sep 01 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 Javascript
使用Bootstrap打造特色进度条效果
May 02 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
功能完善的小程序日历组件的实现
Mar 31 Javascript
vue实现顶部菜单栏
Nov 08 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 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 intval的测试代码发现问题
2008/07/27 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
浅谈Python单向链表的实现
2015/12/24 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
关于Django Models CharField 参数说明
2020/03/31 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
python实现计算器简易版
2020/12/17 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
女大学生自我鉴定
2013/12/09 职场文书
开学典礼感言
2014/02/16 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
一体化教学实施方案
2014/05/10 职场文书
活动宣传策划方案
2014/05/23 职场文书
5s标语大全
2014/06/23 职场文书
安全施工责任书
2014/08/25 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
react antd实现动态增减表单
2021/06/03 Javascript