我试图根据用户访问的iOS版本来更改页面的行为。
以下是我所拥有的:
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)];
}
}
var ver = iOSversion();
if (ver[0] >= 8) {
alert("using iOS8");
} else if (ver[0] <= 7) {
alert("using iOS7 or earlier");
}
我得到&#39; TypeError:ver未定义&#39;。
我在这里错过了什么吗?
由于
答案 0 :(得分:2)
当if (/iP(hone|od|ad)/.test(navigator.platform)) {
检查失败时,您的方法不会返回任何内容,因此ver
为undefined
。
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)];
} else {
return []; //<-- return an empty array and it will not error.
}
}
或者在使用if之前检查版本是否有值。
var ver = iOSversion();
if (ver) { /* do it */ }