Javascript:是否可以只定位一个版本的iOs?

时间:2013-11-29 15:17:31

标签: javascript html ios iphone css

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

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

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

2 个答案:

答案 0 :(得分:2)

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

navigator.userAgentnavigator.platform会为您提供所需内容,也就是说我不太确定您是否能够将其追踪到如此特定的程度。

您还可以尝试以下代码段:

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

我的建议是始终尝试解决潜在问题,而不是实施解决方法,但我很欣赏这有时可能不切实际。

答案 1 :(得分:1)

根据此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.');
}