Dies ist jQuery-spezifisch und enthält einen kleinen Trick/Fix für Chrome. Dies funktioniert zwischen jQuery 1.5.1 und jQuery 1.8.3. In jQuery 1.9 ist es weg. Wahrscheinlich, weil es zu oft falsch verwendet wurde und das Web geschädigt hat. Besser ist es, wenn möglich, Funktionen zu erkennen.
var userAgent = navigator.userAgent.toLowerCase(),
browser = '',
version = 0;
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
// Is this a version of IE?
if ($.browser.msie) {
userAgent = $.browser.version;
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Internet Explorer";
}
// Is this a version of Chrome?
if ($.browser.chrome) {
userAgent = userAgent.substring(userAgent.indexOf('chrome/') + 7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
// If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
$.browser.safari = false;
browser = "Chrome";
}
// Is this a version of Safari?
if ($.browser.safari) {
userAgent = userAgent.substring(userAgent.indexOf('safari/') + 7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Safari";
}
// Is this a version of Mozilla?
if ($.browser.mozilla) {
//Is it Firefox?
if (navigator.userAgent.toLowerCase().indexOf('firefox') != -1) {
userAgent = userAgent.substring(userAgent.indexOf('firefox/') + 8);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Firefox"
}
// If not then it must be another Mozilla
else {
browser = "Mozilla (not Firefox)"
}
}
// Is this a version of Opera?
if ($.browser.opera) {
userAgent = userAgent.substring(userAgent.indexOf('version/') + 8);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Opera";
}
// Now you have two variables, browser and version
// which have the right info
Interessant. Es zeigt Safari 533 vom Standard-Android-Browser.
Ich benutze Safari, aber die neueste Version von Safari ist 5.0.3 (6533.19.4). Bezieht sich die 533 auf die Versionsnummer oder die 533 in der Build-Nummer?
Keine Ahnung, mein Freund. Nicht mein Schnipsel :)
Ersetzen Sie den Code für Safari durch den folgenden und Sie erhalten "Safari 5"
K-Meleon ist .... Mozilla (nicht Firefox) 0
hehe
Ich sehe nicht, wie dies in die ID "browser-info-here" unter dem Code gefüllt wird? Vielleicht bin ich dumm.
@thomas
$(‘#browser-info-here’).append(browser + ” ” + version);
Zur Info, $.browser wurde in jQuery 1.9 entfernt.
Dann fügen Sie das 'jQuery Migrate'-Plugin in Ihren Code ein.
Um den Browser des Benutzers zu erkennen, verwende ich das Skript auf quirksmode
es fügt der HTML-Datei die Klasse "mozilla" hinzu, aber ich habe den Chrome-Browser! Ich verstehe es nicht.
Was ist mit Mobilgeräten?
Es ist nicht "besser", Feature-Detection zu verwenden.
Zu 100% müssen Sie browserspezifische Eigenheiten beheben, und der einzige Weg, dies zu tun, ist die Überprüfung auf einen Browser und eine Version.
Zu 5% müssen Sie prüfen, ob eine bestimmte Funktion unterstützt wird oder nicht, und die beste Antwort dafür ist tatsächlich Feature-Detection.
Es ist wie bei div, table oder was auch immer: Nur weil einige Leute es missbraucht haben, bedeutet das nicht automatisch, dass es eine schlechte Sache ist, die man vermeiden sollte.