2009-08-24 7 views
1

Ich machte die browser recognition tutorial auf w3schools, und ich fand, dass bei Verwendung von Firefox und Google Chrome ich Netscape 5 als mein Ergebnis erhielt. Ich war nur neugierig, warum das so ist. Will jemand es mir erklären?Javascript Browsererkennung

+6

Es ist keine gute Idee, w3schools als jede Art von definierenden Quelle für Informationen über Web-Technologie zu verwenden. Es ist ziemlich stark veraltet. Außerdem ist es keine gute Idee, Browser-Sniffing durchzuführen, es sei denn, es gibt absolut keine andere Möglichkeit, das zu tun, wonach Sie suchen. Feature Sniffing ist besser. – Breton

Antwort

4

Ich denke, dieser Artikel über die Browser Object Model im Wesentlichen Ihre Frage beantwortet. Grundsätzlich ist das Objekt navigator nutzlos, und niemand kümmert sich darum, es zu aktualisieren. Firefox hat seine Wurzeln in Netscape, und diese Eigenschaften wurden einfach nie aktualisiert. (Hinweis: Ich würde mich für warum haben sie noch nie aktualisiert wurden, aber ich habe es noch nicht gefunden).

Das Tutorial, das Sie bei W3C verfolgen, ist veraltet. Es benutzt eine extrem alte Methode der Browser-Erkennung, die ganz einfach nicht mehr funktioniert. A better version is here, aber auch diese Methode wird nicht mehr empfohlen. Alle diese Eigenschaften können gefälscht werden und sind einfach unzuverlässig.

Die allgemeine Methode zur Identifizierung von Browsern in diesen Tagen ist eine Technik namens object detection, die im Wesentlichen auf die Fähigkeiten Ihres Browsers stößt und identifiziert, je nachdem, was es tun kann oder welche spezifischen Objekte existieren können.

Es ist von Interesse zu beachten, dass moderne Bibliotheken wie MooTools und JQuery Browser Identifizierung sehr trivial und sauber machen, indem Sie all diese Objekt- und Feature-Erkennung für Sie tun. MooTools verfügt über ein Objekt Browser, und JQuery hat jQuery.browser, jetzt veraltet zugunsten .

+0

@Zombat: Hey du schlägst mich um ein paar Sekunden. Sogar ich schlage die Version vor, die in der quirksmode Seite verfügbar ist. :) – kayteen

+0

@kayteen - hah, yeah Ich habe auf jemanden gewartet, der diese gepostet hat, und ich habe mich für die spezifischen Gründe interessiert, warum 'navigator' nie aktualisiert wurde, also habe ich gerade angefangen, mich selbst zu suchen und eine Antwort zu schreiben. – zombat

0

Dieser Trend-Thema könnte auch von Nutzen sein:

When IE8 is not IE8 what is $.browser.version?

einige der anderen Kommentare Echo. Browser-Sniffing mit dem Benutzer-Agent ist unzuverlässig. Object Detection und Feature Detection sind der Weg zu gehen