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 BASE64编码 window.atob(), window.btoa()
Mar 09 Javascript
jquery 必填项判断表单是否为空的方法
Sep 14 Javascript
js获取input标签的输入值实现代码
Aug 05 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
May 20 Javascript
javascript生成不重复的随机数
Jul 17 Javascript
IE6兼容透明背景图片及解决方案
Aug 19 Javascript
教你JS中的运算符乘方、开方及变量格式转换
Aug 09 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
Aug 10 Javascript
Node.Js中实现端口重用原理详解
May 03 Javascript
微信小程序列表时间戳转换实现过程解析
Oct 12 Javascript
Vue结合路由配置递归实现菜单栏功能
Jun 16 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 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
SONY SRF-40W电路分析
2021/03/02 无线电
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
对javascript和select部件的结合运用
2006/10/09 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
jQuery代码优化之基本事件
2011/11/01 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
销售自荐信
2013/10/22 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
服务明星事迹材料
2014/12/29 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
七年级思品教学反思
2016/02/20 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
Python Matplotlib绘制条形图的全过程
2021/10/24 Python