【问题标题】:Javascript : is it possible to target only one version of iOs? [duplicate]Javascript:是否可以只针对一个版本的 iO? [复制]
【发布时间】:2013-11-29 15:17:31
【问题描述】:

我在 iO 上遇到了固定定位的错误(底部的固定菜单,当键盘出现时出现在屏幕中间)。

问题是,这个错误只发生在 iOs 6.1.4 上。所以我刚刚完成的修复适用于 iOs 6.1.4(这个:http://dansajin.com/2012/12/07/fix-position-fixed/),但在 iOs 6.1.3 上使菜单出现在屏幕中间...

有没有办法在JS中检测当前版本的iOs?

【问题讨论】:

标签: javascript html ios iphone css


【解决方案1】:

您是否尝试过使用console.log(navigator); 来获取有关浏览器的信息?

navigator.userAgentnavigator.platform 将为您提供所需的基础,也就是说我不确定您是否能够追踪到如此具体的程度。

你也可以试试这个sn-p的代码:

function iOSversion() {
  if (/iP(hone|od|ad)/.test(navigator.platform)) {
    // supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
    var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
    return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
  }
}

ver = iOSversion();

if (/(iPad|iPhone|iPod)/g.test( navigator.userAgent ) && ver[0] == 6 && ver[1] ==1 && ver[2]==3) {
  alert('This is running iOS 6.1.3 or later.');
}

Adapted from here

我的建议是始终尝试解决根本问题,而不是实施解决方法,但我明白这有时可能不切实际。

【讨论】:

    【解决方案2】:

    根据post,可以找到 iOS 版本(2.0 以上):

    function iOSversion() {
      if (/iP(hone|od|ad)/.test(navigator.platform)) {
        // supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
        var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
        return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
      }
    }
    
    ver = iOSversion();
    
    if (ver[0] === 6.14) {
      alert('This is running iOS 6.14.');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 2011-10-27
      • 2018-08-02
      • 1970-01-01
      • 2019-10-14
      • 2023-03-21
      相关资源
      最近更新 更多