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实现滑动图片自己测试的例子
Nov 05 Javascript
jqgrid 表格数据导出实例
Nov 21 Javascript
Bootstrap的Refresh Icon也spin起来
Jul 13 Javascript
Node.js中的http请求客户端示例(request client)
May 04 Javascript
ionic 3.0+ 项目搭建运行环境的教程
Aug 09 Javascript
Vue父子模版传值及组件传值的三种方法
Nov 27 Javascript
详解为Bootstrap Modal添加拖拽的方法
Jan 05 Javascript
微信小程序实现MUI数字输入框效果
Jan 31 Javascript
JavaScript多态与封装实例分析
Jul 27 Javascript
微信小程序实现顶部下拉菜单栏
Nov 04 Javascript
ES6中异步对象Promise用法详解
Jul 31 Javascript
你不可不知的Vue.js列表渲染详解
Oct 01 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 array_flip() 删除数组重复元素
2009/01/14 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
常用DOM整理
2015/06/16 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
Python中的引用知识点总结
2019/05/20 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
pymysql模块的操作实例
2019/12/17 Python
Python enumerate内置库用法解析
2020/02/24 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
质检员的岗位职责
2013/11/15 职场文书
绩效工资实施方案
2014/03/15 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
骨干教师申报材料
2014/12/17 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Golang 字符串的常见操作
2022/04/19 Golang