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 相关文章推荐
Jquery插件写法笔记整理
Sep 06 Javascript
JavaScript—window对象使用示例
Dec 09 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
Mar 31 Javascript
JavaScript DOM事件(笔记)
Apr 08 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
javascript中eval解析JSON字符串
Feb 27 Javascript
jQueryUI中的datepicker使用方法详解
May 25 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
javascript实现前端成语点击验证
Jun 24 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
PHP 加密与解密的斗争
2009/04/17 PHP
PHP实现搜索相似图片
2015/09/22 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
js select常用操作控制代码
2010/03/16 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
vue登录注册实例详解
2019/09/14 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
python解析json实例方法
2013/11/19 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
python代码如何注释
2020/06/01 Python
物业公司采购员岗位职责
2013/12/31 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
高校教师岗位职责
2014/03/18 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
余世维讲座观后感
2015/06/11 职场文书
交通安全温馨提示语
2015/07/14 职场文书
老舍《猫》教学反思
2016/02/17 职场文书