使用jQuery检测IOS 8

使用jQuery检测IOS 8,jquery,ios,Jquery,Ios,我在谷歌上搜索并尝试了很多想法,但它们要么在所有浏览器上都把整个网站搞得一团糟,要么真的很旧,要么是javascript而不是jQuery。我累坏了 目前,这适用于检测IOS,但不适用于以下版本: $(document).ready(function() { var deviceAgent = navigator.userAgent.toLowerCase(); var agentID = deviceAgent.match(/(iphone|ipod|ipad)/);

我在谷歌上搜索并尝试了很多想法,但它们要么在所有浏览器上都把整个网站搞得一团糟,要么真的很旧,要么是javascript而不是jQuery。我累坏了

目前,这适用于检测IOS,但不适用于以下版本:

$(document).ready(function() {
    var deviceAgent = navigator.userAgent.toLowerCase();
    var agentID = deviceAgent.match(/(iphone|ipod|ipad)/);
    if (agentID) {

... do something here

    }
});    

我如何才能在其中添加IOS 8检测,以便创建一个html类“IOS-8”“no-ios8”或等效类。Mobile Safari的UA字符串如下所示:

Mozilla/5.0(iPhone;CPU iPhone OS 8_0_2,如Mac OS X)AppleWebKit/600.1.4(KHTML,如Gecko)版本/8.0 Mobile/12A405 Safari/600.1.4

(来源:)

所以你可以写一个这样的函数。(


访问移动safari浏览器或iOS Chrome之类的webview应用程序中的演示页面,查看其警报
true

只是好奇:为什么需要特别针对iOS 8?“或者它们是javascript而不是jQuery”--jQuery是用javascript编写的,如果纯JS解决方案是解决您问题的最佳方式,那么使用纯JS解决方案是完全可以接受的。@SebastianWramba-因为在早期版本的IOS中工作的东西现在在IOS 8中不起作用,例如带有position:fixed的奇怪东西,它们以前非常好。@Perpatim-是的,但我似乎无法确定它何时是纯js,因为我对这两个方面都不太感兴趣,使用jQuery会更好,但也不太好。这是只适用于iphone还是也适用于ipad?上面的正则表达式仅限于iphone。如您的原始代码所示,编辑为支持iPhone、iPod或iPad。上面的正则表达式不会选择iPad mini,因为在“iPad”和“os 8”之间有一些字符。我们正在使用/(iphone | ipod | ipad)。*os8 |/它似乎正在我们的测试设备上工作
var isIOS8 = function() {
  var deviceAgent = navigator.userAgent.toLowerCase();
  return /(iphone|ipod|ipad).* os 8_/.test(deviceAgent);
}

alert("isIOS8: " + isIOS8());