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 相关文章推荐
JavaScript语言中的Literal Syntax特性分析
Mar 08 Javascript
在IE浏览器中resize事件执行多次的解决方法
Jul 12 Javascript
jquery获得option的值和对option进行操作
Dec 13 Javascript
JavaScript中的eval()函数使用介绍
Dec 31 Javascript
JS表的模拟方法
Feb 05 Javascript
json的使用小结
Jun 08 Javascript
vue路由嵌套的SPA实现步骤
Nov 06 Javascript
详解浏览器缓存和webpack缓存配置
Jul 06 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
vue点击自增和求和的实例代码
Nov 06 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
php下连接mssql2005的代码
2011/01/17 PHP
php批量上传的实现代码
2013/06/09 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
javascript实现日历效果
2019/06/17 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
使用cx_freeze把python打包exe示例
2014/01/24 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
师范大学音乐表演专业求职信
2013/10/23 职场文书
自我鉴定注意事项
2014/01/19 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
升学宴家长致辞
2015/07/27 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript