好久没复习js了,今天正好之前的项目要重新写一套移动端的代码,之前的没有做移动端的兼容,故将遇到的问题写在上面:

在移动设备应用越来越广泛的今天,许多网站都开始做移动端的界面展示,两者屏幕尺寸差异很大,所以展示的内容也有所差别。于是就遇到一个问题,如何判断你的页面是在移动端还是在PC端打开的,很简单的问题,那我们就简单点来说:

Navigator对象

  首先来了解一下Navigator 对象,Navigator 对象包含有关浏览器的信息,下面的userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。所以我们可以通过判断navigator.useragent里面是否有某些值来判断,比如我的电脑是mac,所以打印出来的值为

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

具体含义不解释,有兴趣同学自行百度,可以看到里面含有 Mac 字样,其他的也是类似的。

那如何判断页面是在移动端还是PC端打开的呢?

  网上有很多方法,写的或难或简单,实际上一行代码就够了

window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? "https://www.baidu.com/" :  "http://news.baidu.com/";

以上代码利用了正则表达式和三目运算符,含义就是如果是移动端打开的话那就跳转到 “https:www.baidu.com/” ,如果不是就跳转到”http://new.baidu.com/“,这个看不懂的话,那我下面这样写就很容易理解了吧

    if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {window.location.href = "https://www.baidu.com/";} else {window.location.href = "http://news.baidu.com/";}

  什么?if里面的判断还是看不懂?实际上就是利用正则去判断 navigator.useragent 是否含有 Android/webOs/iphone 等字符串,并且利用修饰符 “i” 做了不区分大小写,然后用正则的方法 test 去判断是否满足,如果这种方式不理解的话完全可以利用字符串的 indexOf 方法去判断。

OK到此就完成了!!!

JS判断页面是在pc端还是移动端打开方法相关推荐

  1. JS判断页面加载完毕

    //JS判断页面加载完毕,再隐藏加载效果层,一个简单的JS加载效果.document.onreadystatechange = function () {if (document.readyState ...

  2. JS判断页面控件是否可用

    JS判断页面控件是否可用[原创] 2009-12-08 16:27 如果你看到这篇文章,甚至目前正愁于该问题的困扰,希望你把这篇文章看完.至少下次不会在这个问题上浪费时间. 近期做的项目中涉及到页面控 ...

  3. html js 如何判断页面是第一次访问还是重复刷新访问,使用JS判断页面是首次被加载还是刷新...

    1 利用window.name属性在页面刷新时不会重置判断(在该属性空置的情况下可使用) if(window.name == ""){ console.log("首次被加 ...

  4. html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面

    判断手机端和pc端 (function () { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf('Android') > ...

  5. JS判断页面是否在微信浏览器、QQ浏览器等打开的方法

    本文实例讲述了js判断当前页面是否在微信浏览器打开的方法.分享给大家供大家参考,具体如下: 转自http://blog.csdn.net/jason_wangying/article/details/ ...

  6. Js判断客户端是否为PC还是手持移动设备

    方法一 function IsPC(){ var userAgentInfo = navigator.userAgent;var Agents = new Array("Android&qu ...

  7. JS判断页面是否被iframe嵌套

    1.判断页面是否被iframe有三种方法 //方式一 if (self.frameElement && self.frameElement.tagName == "IFRAM ...

  8. html判断是否在页面,js判断页面关闭

    JavaScript判断某个页面是否已经关闭 var N=document.getElementById(your_submit_Id); var flag=0; N.attachEvent(&quo ...

  9. 如何判断页面是通过PC端还是移动端访问?

    一.navigator.userAgent 最简单的方法就是分析浏览器的 user agent 字符串,它包含了设备信息. JS 通过navigator.userAgent属性拿到这个字符串,只要里面 ...

最新文章

  1. Java IO 字节流与字符流 (三)
  2. iOS 之 IQKeyboardManager 解决使用UITableView 界面上移问题
  3. 郁闷。用户的无聊话题
  4. Nginx 禁止某 IP 访问
  5. Linux Kernel TCP/IP Stack — L1 Layer — Physical NIC
  6. Java读取resource文件/路径的几种方式
  7. . SQL多条件查询存储过程
  8. kmp2-HDU1358 HUST1010 POJ2406 POJ2752
  9. 阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
  10. HTML+CSS+JS实现 ❤️圣诞抓礼物小游戏❤️
  11. pthreads v3下的worker和pool的使用
  12. java 中如何连接 oracle 数据库
  13. DEMATEL算法程序
  14. 抽奖软件NABCD分析
  15. SpringBoot多种自定义错误页面方式
  16. matlab 图像检测,基于matlab图像识别的基本操作方法(以番茄识别为例)
  17. 【2018年11月12日】其他化学制品行业的股票估值
  18. php订单表设计,订单详情表,与,订单表 怎么做?
  19. 实验室装水的容器叫什么_实验室常见水的种类_生命之源水
  20. linux下启动node服务出现events.js:167 throw er; // Unhandled ‘error‘ event 的解决方法

热门文章

  1. 华为19级专家10年心血终成百页负载均衡高并发网关设计实战文档
  2. 血压血氧健康监测,一个手环就搞定,dido Y1S体验
  3. runtime(三) Objective-C 的消息转发机制与动态添加方法
  4. android各个版本的名称
  5. 第二周周报(9.13-9.19)
  6. ​滴滴出行副总裁、AI Labs负责人叶杰平将于近期离职,会如传闻所说加入阿里巴巴吗?...
  7. 使用nohup运行循环脚本插入发现数据重复的问题
  8. Elasticsearch 5.0 简介(medcl微信直播实录)
  9. 2021年中国智慧菜场行业研究报告——附下载链接
  10. 新版本 - Berlin Update 1 – 现在购买可享九折优惠