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 相关文章推荐
jQuery bxCarousel实现图片滚动切换效果示例代码
May 15 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
省市选择的简单实现(基于zepto.js)
Jun 21 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
Oct 16 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 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/08/15 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
JavaScript 实现继承的几种方式
2021/02/19 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
女大学生自我鉴定
2013/12/09 职场文书
基督教婚礼主持词
2014/03/14 职场文书
实习推荐信
2014/05/10 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
golang内置函数len的小技巧
2021/07/25 Golang