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模拟多线程
Feb 07 Javascript
JavaScript检查子字符串是否在字符串中的方法
Feb 03 Javascript
ECMAScript6快速入手攻略
Jul 18 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
Jul 27 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
jQuery Validate 校验多个相同name的方法
May 18 jQuery
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
微信小程序自定义联系人弹窗
May 26 Javascript
ES6 Symbol在对象中的作用实例分析
Jun 06 Javascript
前端监听websocket消息并实时弹出(实例代码)
Nov 27 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详细彻底学习Smarty
2008/03/27 PHP
php递归列出所有文件和目录的代码
2008/09/10 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python cs架构实现简单文件传输
2020/03/20 Python
设置python3为默认python的方法
2018/10/31 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
python 如何快速复制序列
2020/09/07 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
致200米运动员广播稿
2014/02/06 职场文书
表彰大会策划方案
2014/05/13 职场文书
医药销售自荐书
2014/05/29 职场文书
先进工作者申报材料
2014/12/23 职场文书
违纪开除通知书
2015/04/25 职场文书
董事长秘书工作总结
2015/08/14 职场文书
反四风问题学习心得体会
2016/01/22 职场文书