navigator.userAgent.toLowerCase区分设备,浏览器
navigator.userAgent.toLowerCase区分设备,浏览器
- navigator.userAgent.toLowerCase()
- 区分设备是pc还是移动端
- 在确认是移动端的基础上,判断是Android、ipad、iphone
- 内置的浏览器,比如新浪微博、腾讯QQ(非QQ浏览器)和微信
在跨平台、浏览器、移动设备兼容的时候,需要根据设备、浏览器做特定调整,所以我们经常会用到navigator.userAgent.toLowerCase()来进行判断
navigator.userAgent.toLowerCase()
- navigator是HTML中的内置对象:包含浏览器的信息;
- userAgent是navigator的属性方法:可以返回由客户机发送服务器的头部的值,作用其实就是就是返回当前用户所使用的是什么浏览器;
- toLowerCase是转换为小写;
区分设备是pc还是移动端
function _isMobile () {let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)return flag
}if(_isMobile()) {alert("手机端");this.$router.replace('/m_index');
} else {alert("pc端");this.$router.replace('/pc_index');
}
在确认是移动端的基础上,判断是Android、ipad、iphone
var ua = navigator.userAgent.toLowerCase();
console.log(ua,'ua')
if (/android|adr/gi.test(ua)) {alert("安卓");
}else if(/iPad/gi.test(ua) ){alert("ipad");
}else if(/\(i[^;]+;( U;)? CPU.+Mac OS X/gi.test(ua)){alert("苹果");
}
内置的浏览器,比如新浪微博、腾讯QQ(非QQ浏览器)和微信
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/weibo/i) == "weibo"){ console.log('新浪微博');
}else if(ua.indexOf('qq/')!= -1){ console.log('QQ客户端');
}else if(ua.match(/MicroMessenger/i)=="micromessenger"){ console.log('微信'); var v_weixin = ua.split('micromessenger')[1]; v_weixin = v_weixin.substring(1,6); v_weixin = v_weixin.split(' ')[0]; if(v_weixin.split('.').length == 2){ v_weixin = v_weixin + '.0'; } if(v_weixin < '6.0.2'){ console.log('微信低于6.0.2版本');}else{ console.log('微信高于6.0.2版本'); }
}else{ console.log('其他');
}
相关文章:
navigator.userAgent.toLowerCase区分设备,浏览器
navigator.userAgent.toLowerCase区分设备,浏览器 navigator.userAgent.toLowerCase()区分设备是pc还是移动端在确认是移动端的基础上,判断是Android、ipad、iphone内置的浏览器,比如新浪微博、腾讯QQ(非QQ浏览器&…...
防火墙操作:开放端口ICMP时间戳请求漏洞修复
响应ICMP时间戳请求漏洞修复 firewall-cmd --permanent --zonepublic --add-icmp-blocktimestamp-reply firewall-cmd --permanent --zonepublic --add-icmp-blocktimestamp-request firewall-cmd --reload --防火墙状态 systemctl status firewalld --打开防火墙 systemctl …...
MySQL配置环境变量和启动登录
如果不配置环境变量,每次登录 MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任…...
救济金发放(The Dole Queue, UVa 133)rust解法
n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上)…...
oracle实验四
创建文件 (1)为 ORCL 数据库创建一个名为 BOOKTBS1 的永久性表空间,数据文件为’d:\bt01.dbf’ ,大小为100M,区采用自动扩展方式(即自动分配), 段采用自动管理方式; &am…...
数据结构-堆排序Java实现
目录 一、引言二、算法步骤三、原理演示步骤1: 构建最大堆步骤2: 交换和堆化步骤3: 排序完成 四、代码实战五、结论 一、引言 堆排序是一种利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或…...
C#进阶——反射(Reflection)
定义:反射指的是在运行时动态地获取、检查和操作程序中的类型信息,而在我们的Unity中反射允许开发者在运行时通过代码来访问和修改对象的属性、方法和字段,而不需要提前知道这些成员的具体信息。 举一个例子,我们使用反射在运行的…...
Oracle 运维篇+应用容器数据库的install、upgrade、patch、uninstall
★ 知识点 ※ DEFAULT_SHARING参数的取值 METADATA: 元数据链接共享数据库对象的元数据,但其数据对于每个容器是唯一的。这些数据库对象被称为元数据链接的应用程序公共对象。此设置为默认设置。DATA: 数据链接共享数据库对象,其数据对于应用程序容器中…...
Affinity Publisher for Mac/Windows最新中文下载 排版神器
Affinity Publisher是一款专业的排版和设计软件,它可以帮助您从简单的文档到复杂的书籍和杂志轻松创建高质量的出版物。 该软件具有直观的界面和强大的功能,使您可以轻松组织和编辑文本、图像和数据,并创建令人惊叹的布局。 Affinity Publi…...
Mac文件对比同步工具 Beyond Compare 4.4.7
Beyond Compare 4 是一款强大的文件和文件夹比较工具。它提供了一个直观的界面,使您可以快速比较和同步文件和文件夹。 Beyond Compare 4 具有许多有用的功能,包括比较和合并文件、文件夹和压缩文件,以及同步文件和文件夹。它支持各种类型的文…...
技巧 | 如何解决 OBS 系统声音无法捕获问题 | Mac
技巧 | 如何解决 OBS 系统声音无法捕获问题 | Mac 问题描述 由于 macOS 系统限制,桌面音频被禁止,导致在使用 OBS 无法录制桌面音频,只能使用自带麦克风录制。 解决方法 Loopback 介绍 借助 Loopback 的强大功能,可以轻松地…...
从头开始机器学习:逻辑回归
一、说明 本篇实现线性回归的先决知识是:基本线性代数,微积分(偏导数)、梯度和、Python (NumPy);从线性方程入手,逐渐理解线性回归预测问题。 二、逻辑回归简介 我们将以我们在线性回…...
插入排序 算法
从第二个开始,从后面往前找,如果比其小,就交换,else 就终止 for i 1 i <n i for j i j > 0 (到第二个) j-- if < swap 下面给出源码 //对插入排序来说,直接从第二个元素开始template<ty…...
“揭秘!如何通过京东商品详情接口轻松获取海量精准商品信息!“
京东商品详情接口可以通过HTTP GET请求获取商品详情信息。 请求参数包括num_iid,表示JD商品ID。 请求示例: GET /jd/item_get/?num_iid10335871600 HTTP/1.1 Host: api-vx.Taobaoapi2014.cn Connection: close Accept-Encoding: gzip 点击获取…...
已经有多人中招,不要被AI换脸技术骗了!
您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…...
solidworks 2024新功能之--保存为低版本 硕迪科技
大家期盼已久的SOLIDWORKS保存低版本文件功能来了,从SOLIDWORKS 2024 开始,您可以将在最新版本的SOLIDWORKS 中创建的SOLIDWORKS零件、装配体和工程图另存为SOLIDWORKS 早期版本的全功能文档(完成的特征树与相关参数)。 将文件另…...
MySQL --- 聚合查询 和 联合查询
聚合查询: 下文中的所有聚合查询的示例操作都是基于此表: 聚合函数 聚合函数都是行与行之间的运算。 count() select count(列名) from 表名; 统计该表中该列的行数,但是 null 值不会统计在内,但是如果写为 count(*) 那么 nu…...
Note——torch.size() umr_maximum() array.max() itertools.product()
torch.size Problem TypeError: ‘torch.Size’ object is not callable Reason Analysis torch.Size函数不可调用 因为torch只可以.size() 或 shape Solution 将y.shape()替换为y.size() 或 y.shape ytorch.normal(0,0.01,y.size())2 return umr_maximum(a, axis, None…...
python学习笔记6-DefaultDict
对于一般的字典来说,如果键不存在会导致【KeyError】,因此可以考虑用DefaultDict # Defining the dict d defaultdict(def_value) d["a"] 1 d["b"] 2print(d["a"]) print(d["b"]) print(d["c"…...
Redis 底层对 String 的 3 个优化
Redis对 String 类型实现了很多优化,通过以下三个重要的优化点来解释: 1. 简单动态字符串(SDS) Redis 的 String 类型内部采用简单动态字符串(SDS)来管理字符串。相比于 C 语言的原生字符串,S…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
