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 相关文章推荐
SharePoint 客户端对象模型 (一) ECMA Script
May 22 Javascript
jQuery父级以及同级元素查找介绍
Sep 04 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
JQuery Ajax WebService传递参数的简单实例
Nov 02 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
jQuery正则验证注册页面经典实例
Jun 10 jQuery
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 Javascript
vue实现购物车小案例
Sep 27 Javascript
通过实例解析JavaScript常用排序算法
Sep 02 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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python利用datetime模块计算时间差
2015/08/04 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
weblogic面试题
2016/03/07 面试题
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
员工拓展培训方案
2014/02/15 职场文书
环境建设实施方案
2014/03/14 职场文书
环境科学专业求职信
2014/08/04 职场文书
新教师个人总结
2015/02/06 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技