本文主要是介绍持续记录前端开发中小坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.js区分pc端还是移动手机端
这个正则匹配百度一搜一大堆,基本没啥问题,都是通过naviagtor.userAgent做正则匹配判断的
坑:华为荣耀v8自带浏览器,魅族手机自带浏览器匹配不上(我复制的那个正则匹配不了)
分析:
pc端->userAgent->"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/55.0.2883.87 Safari/537.36" 测试百度浏览器,360极速和兼容模式,chrome,火狐,ie等浏览器,基本差不多, 都有关键词‘Windows NT';
测试的两部手机->"Mozilla/5.0 (Windows nt 6.1; wow64) applewebKit/537.36 (khtml, like gecko) chrome/55.0.2883.87safari/537.36" 乍一看,其中数字不太一样,基本都差不多。我们的匹配只做了windows和windows ce的匹配,故这两 手 机 打开时被认为是pc端,导致后续流程出问题了
解决:不敢确定所有手机都是这样,我们暂定解决方案就是 匹配 “windows nt”其中nt为小写;
代码:navigator.userAgent.match(/windows nt/)=='windows nt'返回true就是移动端,否则pc端
2.通过in判断是否在移动端打开页面
isMobile = 'ontouchstart' in document;// 很多人喜欢用浏览器UA的方式来判断,但并不是很好的方式
这篇关于持续记录前端开发中小坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!