当前位置: 首页 > news >正文

js判断当前页面在移动设备还是在PC端中打开

方法一:

var isPC = function ()
{
    var userAgentInfo = navigator.userAgent.toLowerCase();
    var Agents = new Array("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;
}

前端调用  不需要jq
<
script src="../../js/isPc.js"></script> <script> var isPC = isPC(); if(!isPC){ //window.location.href = 'm/index.html';
          //执行移动端要执行的代码
console.log("移动端"); } </script>

 

方法二:

  js判断用户的浏览设备是移动设备还是PC

<script type="text/javascript">
    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";
      document.writeln("您的浏览设备为:");
      if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
        document.writeln("phone");
      } else {
        document.writeln("pc");
      }
    }
 
    browserRedirect();
  </script>

判断详细浏览器设备信息:

var browser = {
             versions: function () {
               var u = navigator.userAgent, app = navigator.appVersion;
               return {     //移动终端浏览器版本信息
                 trident: u.indexOf('Trident') > -1, //IE内核
                 presto: u.indexOf('Presto') > -1, //opera内核
                 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
                 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
                 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
                 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
                 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
                 iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
                 iPad: u.indexOf('iPad') > -1, //是否iPad
                 webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
               };
             }(),
             language: (navigator.browserLanguage || navigator.language).toLowerCase()
           }            
           if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
               var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
               if (ua.match(/MicroMessenger/i) == "micromessenger") {
                   //在微信中打开
                  setInterval(WeixinJSBridge.call('closeWindow'),2000);
               }
               if (ua.match(/WeiBo/i) == "weibo") {
                   //在新浪微博客户端打开
               }
               if (ua.match(/QQ/i) == "qq") {
                   //在QQ空间打开
               }
               if (browser.versions.ios) {
                   //是否在IOS浏览器打开
               } 
               if(browser.versions.android){
                   //是否在安卓浏览器打开
               }
           } else {
               //否则就是PC浏览器打开
               window.close();
           }

 

转载于:https://www.cnblogs.com/haonanZhang/p/6236354.html

相关文章:

  • 元宵,你团圆了吗
  • 获取本机IP
  • Windows Phone 7 不温不火学习之【DeepZoom 详细使用方法】
  • 集合框架遍历方式之——for-each循环
  • ArcGIS API for Android 案例教程 6
  • 类的单列模式
  • Lisp的特性 (评论发不出,只好写一篇新的)
  • 数据图表插件Echarts(一)
  • 一只布谷鸟,两只火鸡,三匹赛马,移动竞赛的改变
  • 2016年 前端学习网站
  • --自定义事件
  • C++ VS C#(10):构造函数与析构函数
  • oracle 10g OEM常规错误解决
  • Hibernate实体关系映射(OneToMany单边)——完整实例
  • JavaScript学习笔记(三)——this、原型、javascript面向对象
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 2019.2.20 c++ 知识梳理
  • Android Volley源码解析
  • create-react-app做的留言板
  • ES6之路之模块详解
  • leetcode98. Validate Binary Search Tree
  • log4j2输出到kafka
  • Mysql优化
  • node和express搭建代理服务器(源码)
  • PHP变量
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • tensorflow学习笔记3——MNIST应用篇
  • Terraform入门 - 1. 安装Terraform
  • windows下使用nginx调试简介
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 解析 Webpack中import、require、按需加载的执行过程
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 学习笔记:对象,原型和继承(1)
  • 正则与JS中的正则
  • postgresql行列转换函数
  • 关于Android全面屏虚拟导航栏的适配总结
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 回归生活:清理微信公众号
  • ​iOS实时查看App运行日志
  • ​Java并发新构件之Exchanger
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (轉貼) UML中文FAQ (OO) (UML)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .form文件_SSM框架文件上传篇
  • .NET Core 2.1路线图
  • .NET 解决重复提交问题
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net 使用ajax控件后如何调用前端脚本