在jQuery if / then语句中识别iOS用户代理的简单方法?

时间:2011-09-14 05:29:42

标签: jquery ios if-statement user-agent

完全像听起来..

是否有一些神奇而简单的方式可以说:

    if (user agent is iOS) {
        if (browserRatio >=1.5) {
            $container.css('min-height', '360px');
        } else {
            $container.css('min-height', '555px');
        }
     }

6 个答案:

答案 0 :(得分:64)

找到它。

if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
    if (browserRatio >=1.5) {
        $container.css('min-height', '360px');
    } else {
        $container.css('min-height', '555px');
    }
}

答案 1 :(得分:2)

我知道你特别询问jquery,但IMO,你几乎肯定想要使用CSS3 @media queries。甚至支持测试landscape or portrait orientation

@media (orientation:landscape) {
  .container_selector {
    min-height: 555px;
  }
}
@media (orientation:portrait) {
  .container_selector {
    min-height: 360px;
  }
}

希望这有帮助!

答案 2 :(得分:1)

为了使其工作,您将需要定义browserWidth,但是它会起作用。在这里,我只针对iPad。

    $(window).load(function(){
      var browserWidth = $(window).width(); 

      if (navigator.userAgent.match(/(iPad)/)) {
        if (browserWidth == 768) {
            $('.sectionI').css({'margin-left': '30px'});
        } else if (browserWidth == 1024)  {
            $('.sectionI').css({'margin-left': '0px'});
        }
      }
    });

答案 3 :(得分:1)

对于网络应用版本,请尝试此操作。

if (
    ("standalone" in window.navigator) &&
    !window.navigator.standalone
    ){

    // .... code here ....
}

答案 4 :(得分:0)

要确保此字符串不匹配:Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 925) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537只需将代码更改为

if (navigator.userAgent.match(/(\(iPod|\(iPhone|\(iPad)/)) {
    if (browserRatio >=1.5) {
        $container.css('min-height', '360px');
    } else {
        $container.css('min-height', '555px');
    }
}

答案 5 :(得分:-1)

根据对我之前回答的评论,听起来真正的问题是,“你如何隐藏iPhone中的URL栏”。对于这个问题,我发现了这个:

How to Hide the Address Bar in MobileSafari

<body onload="setTimeout(function() { window.scrollTo(0, 1) }, 100);">...</body>