我遇到了在iOs上固定位置的错误(底部的固定菜单,键盘出现时屏幕中间的固定菜单)。
问题是,这个错误只发生在iOs 6.1.4上。所以我刚刚完成的修复工作适用于iOs 6.1.4(这一个:http://dansajin.com/2012/12/07/fix-position-fixed/),但是在iOs 6.1.3上屏幕中间显示菜单...
有没有办法在JS中检测当前版本的iOs?
答案 0 :(得分:2)
您是否尝试过使用console.log(navigator);
获取有关浏览机器的信息?
navigator.userAgent
或navigator.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.');
}
我的建议是始终尝试解决潜在问题,而不是实施解决方法,但我很欣赏这有时可能不切实际。
答案 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.');
}