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 相关文章推荐
SUN的《AJAX与J2EE》全文译了
Feb 23 Javascript
js字符串转成JSON
Nov 07 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 Javascript
js 倒计时(高效率服务器时间同步)
Sep 12 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
Sep 26 Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
Mar 28 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 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/09/30 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
js中有关IE版本检测
2012/01/04 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
python进阶之自定义可迭代的类
2019/08/20 Python
Python的几种主动结束程序方式
2019/11/22 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
中学生班主任评语
2014/01/30 职场文书
简单租房协议书
2014/10/21 职场文书
教师听课评语大全
2014/12/31 职场文书
罚站检讨书
2015/01/29 职场文书
求职信格式范文
2015/03/19 职场文书
数学备课组工作总结
2015/08/12 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书