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 小数取整的函数
May 10 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
Feb 18 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
Mar 15 Javascript
node.js中的fs.symlink方法使用说明
Dec 15 Javascript
简介JavaScript中toTimeString()方法的使用
Jun 12 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
深入理解js generator数据类型
Aug 16 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 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 将excel导入mysql
2009/11/09 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php生成zip文件类实例
2015/04/07 PHP
php简单生成随机数的方法
2015/07/30 PHP
PHP加密解密函数详解
2015/10/28 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
js no-repeat写法 背景不重复
2009/03/18 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jQuery实现跨域
2015/02/03 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
python安装以及IDE的配置教程
2015/04/29 Python
Python匹配中文的正则表达式
2016/05/11 Python
python简单实现获取当前时间
2016/08/27 Python
Python zip()函数用法实例分析
2018/03/17 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
销售找工作求职信
2013/12/20 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
员工拾金不昧表扬信
2014/01/09 职场文书
经典广告词大全
2014/03/14 职场文书
委托书格式
2014/08/01 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
夏季药店促销方案
2014/08/22 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
php双向队列实例讲解
2021/11/17 PHP