JS判断页面是在pc端还是移动端打开方法
好久没复习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端还是移动端打开方法相关推荐
- JS判断页面加载完毕
//JS判断页面加载完毕,再隐藏加载效果层,一个简单的JS加载效果.document.onreadystatechange = function () {if (document.readyState ...
- JS判断页面控件是否可用
JS判断页面控件是否可用[原创] 2009-12-08 16:27 如果你看到这篇文章,甚至目前正愁于该问题的困扰,希望你把这篇文章看完.至少下次不会在这个问题上浪费时间. 近期做的项目中涉及到页面控 ...
- html js 如何判断页面是第一次访问还是重复刷新访问,使用JS判断页面是首次被加载还是刷新...
1 利用window.name属性在页面刷新时不会重置判断(在该属性空置的情况下可使用) if(window.name == ""){ console.log("首次被加 ...
- html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面
判断手机端和pc端 (function () { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf('Android') > ...
- JS判断页面是否在微信浏览器、QQ浏览器等打开的方法
本文实例讲述了js判断当前页面是否在微信浏览器打开的方法.分享给大家供大家参考,具体如下: 转自http://blog.csdn.net/jason_wangying/article/details/ ...
- Js判断客户端是否为PC还是手持移动设备
方法一 function IsPC(){ var userAgentInfo = navigator.userAgent;var Agents = new Array("Android&qu ...
- JS判断页面是否被iframe嵌套
1.判断页面是否被iframe有三种方法 //方式一 if (self.frameElement && self.frameElement.tagName == "IFRAM ...
- html判断是否在页面,js判断页面关闭
JavaScript判断某个页面是否已经关闭 var N=document.getElementById(your_submit_Id); var flag=0; N.attachEvent(&quo ...
- 如何判断页面是通过PC端还是移动端访问?
一.navigator.userAgent 最简单的方法就是分析浏览器的 user agent 字符串,它包含了设备信息. JS 通过navigator.userAgent属性拿到这个字符串,只要里面 ...
最新文章
- Java IO 字节流与字符流 (三)
- iOS 之 IQKeyboardManager 解决使用UITableView 界面上移问题
- 郁闷。用户的无聊话题
- Nginx 禁止某 IP 访问
- Linux Kernel TCP/IP Stack — L1 Layer — Physical NIC
- Java读取resource文件/路径的几种方式
- . SQL多条件查询存储过程
- kmp2-HDU1358 HUST1010 POJ2406 POJ2752
- 阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
- HTML+CSS+JS实现 ❤️圣诞抓礼物小游戏❤️
- pthreads v3下的worker和pool的使用
- java 中如何连接 oracle 数据库
- DEMATEL算法程序
- 抽奖软件NABCD分析
- SpringBoot多种自定义错误页面方式
- matlab 图像检测,基于matlab图像识别的基本操作方法(以番茄识别为例)
- 【2018年11月12日】其他化学制品行业的股票估值
- php订单表设计,订单详情表,与,订单表 怎么做?
- 实验室装水的容器叫什么_实验室常见水的种类_生命之源水
- linux下启动node服务出现events.js:167 throw er; // Unhandled ‘error‘ event 的解决方法
热门文章
- 华为19级专家10年心血终成百页负载均衡高并发网关设计实战文档
- 血压血氧健康监测,一个手环就搞定,dido Y1S体验
- runtime(三) Objective-C 的消息转发机制与动态添加方法
- android各个版本的名称
- 第二周周报(9.13-9.19)
- ​滴滴出行副总裁、AI Labs负责人叶杰平将于近期离职,会如传闻所说加入阿里巴巴吗?...
- 使用nohup运行循环脚本插入发现数据重复的问题
- Elasticsearch 5.0 简介(medcl微信直播实录)
- 2021年中国智慧菜场行业研究报告——附下载链接
- 新版本 - Berlin Update 1 – 现在购买可享九折优惠