Javascript 在移动网络中检测iPhone 5或其他

Javascript 在移动网络中检测iPhone 5或其他,javascript,mobile,web,iphone-5,Javascript,Mobile,Web,Iphone 5,我正在编写一个web应用程序(xhtml、css、js),它也可以在手机上浏览。我想检测设备是否为iphone 5 您知道它的javascript控制器吗?您可以使用CSS3媒体查询来检测iPhone 5: @media (device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) { /* iPhone 5 or iPod Touch 5th generation */ } 我知道这一点: if('devicePixelRa

我正在编写一个web应用程序(xhtml、css、js),它也可以在手机上浏览。我想检测设备是否为iphone 5


您知道它的javascript控制器吗?

您可以使用CSS3媒体查询来检测iPhone 5:

@media (device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) {
/* iPhone 5 or iPod Touch 5th generation */
}
我知道这一点:

  if('devicePixelRatio' in window && window.devicePixelRatio == 2 ){
     // retina
  }
和(如果需要在服务器上检测)


您需要检查用户是否在iOS设备上是否有视网膜显示器屏幕高度是否恰好为548px

仅检查retina+displayHeight是不够的,因为您可能会意外地将目标锁定在运行在同样具有高密度显示器和548px屏幕高度的设备上的其他操作系统(例如Android)

只需使用此脚本,它将执行您想要的操作:

现在,您可以在启动时将标志应用于dom树(在
中):

if(isIphone5())$(“html”).addClass(“isIphone5”);
如果您需要通过css定位iPhone5,现在可以应用如下样式,例如:

<style>.isIphone5 .someClass{color:red}</style>
.isIphone5.someClass{color:red}

Cool,当iPhone 6或其他设备具有相同功能时?@RobG-这似乎是目前实现这一功能的唯一方法。@Derek AFAIC,我认为目前没有其他方法可以检测iPhone 5。@Derek这是一个有缺陷的策略,除非OP在做一些分析练习,比如访客使用的设备,已知的错误并不是什么大问题。请注意,在(oh和17000个移动浏览器)上列出了超过375000种浏览器用户代理类型。这是错误的,因为它也适用于具有568px高密度显示的任何其他设备(例如Android)。最好检查我的答案。你为什么要这样做?为了建立功能而进行的设备和浏览器检测是有缺陷的策略。这是一个更好的方法。
<style>.isIphone5 .someClass{color:red}</style>