Ich habe einen jQuery-Skript, das diese Konsole Fehler in Safari gibt 10:Legendes Konsole Fehler „Typeerror: undefined ist kein Objekt“ und „Nicht abgefangene Typeerror: kann Eigenschaft‚0‘von undefined“
TypeError: undefined is not an object (evaluating 'iOSversion()')
und dies in Chrome:
Uncaught TypeError: Cannot read property '0' of undefined
Dies ist das Skript in Frage (vereinfacht):
$(document).ready(function() {
//detect iOS version
function iOSversion() {
if (/iP(hone|od|ad)/.test(navigator.platform)) {
// supports iOS 2.0 and later
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
}
}
// this causes a console error
var ver = iOSversion();
if (ver[0] < 10) {
alert('this is version 9 or below');
}
if (ver[0] >= 10) {
alert('this is version 10 or above');
}
});
Frage: Ich bin ein relativ Anfänger mit JavaScript und kämpfen, um zu verstehen, was die Ursache des Problems ist (wie die Variable scheint korrekt definiert zu sein?) Und ich habe keine Ahnung über die [0] Fehler!). Kann mir jemand helfen zu verstehen, was schief läuft und wie man es reparieren kann?
(Die Seite dieses auf geschieht, ist here)
Frage: Was gibt Ihre "iOSversion" -Funktion zurück, wenn die if-Bedingung nicht wahr ist ...? – CBroe