如何用js判断是否为手机访问

JavaScript019

如何用js判断是否为手机访问,第1张

<script type=”text/javascript”><!— //平台、设备和操作系统var system ={win : false,mac : false,xll : false}//检测平台var p = navigator.platformsystem.win = p.indexOf(“Win”) == 0system.mac = p.indexOf(“Mac”) == 0system.x11 = (p == “X11”) (p.indexOf(“Linux”) == 0)//跳转语句if(system.winsystem.macsystem.xll){}else{window.location.href=”android.aspx”}—></script>

常见的方法是通过浏览器用户代理来判定。但用户代理是可以伪造的并且匹配规则会经常变动、失效,使用时需要注意。例如判断android设备:

navigator.userAgent.match(/Android/i)

开源项目有isMobile(https://github.com/kaimallea/isMobile),mobile-detect.js(https://github.com/hgoebl/mobile-detect.js)。

另外也可以通过设备尺寸来判定是不是手机端。比如:

window.matchMedia("only screen and (max-width: 760px)")

通过userAgent判断,navigator.userAgent可以获取当前的userAgent

然后通过匹配手机的常见userAgent进行识别

注:userAgent可以在大多数的手机浏览器上修改(例如选择访问电脑版、访问iphone版等选项就是改变userAgent,来骗过服务器获取其他设备访问的版本)

一般手机浏览器里都带有mobile字样(非协议规范)