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 相关文章推荐
zShowBox 图片放大展示jquery版 兼容性
Sep 24 Javascript
利用jQuery实现可输入搜索文字的下拉框
Oct 23 Javascript
IE6兼容透明背景图片及解决方案
Aug 19 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
Jun 08 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
利用jquery获取select下拉框的值
Nov 23 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
Vue如何实现组件间通信
May 15 Vue.js
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 Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
Vue中插入HTML代码的方法
2018/09/21 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
医院办公室主任职责
2013/12/29 职场文书
写给老婆的检讨书
2014/02/21 职场文书
自我检讨报告
2015/01/28 职场文书
节约用电通知
2015/04/25 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL