Moin!
Hi, letzten endes müsstest du noch viel selber coden, ich schreibe allerdings atm an einer javascript library,
welche informationen zum browser sammelt, und verifiziert.
Ich frage mich - und dann einfach mal dich: Ist das sinnvoll?
hmmm, die frage habe ich mri auch mehrfach gestellt. Prinzipiell: Nein, es macht nie _wirklich_ sinn, eine browser weiche zu bauen. Sinn macht es, browser unabhängige seiten zu basteln. Aber mir war langweilig, und es macht spaß ;o)
Und das ist eben genau das Problem: Browsersniffing bringt nichts, wenn man ständig aktualisierte Skripte verteilen muß, um up to date zu bleiben und die Versionen korrekt zu erkennen. Weder bringt es was auf dem Client, noch bringt es was auf dem Server. Eigentlich kann man nichts anderes tun, als typische Charakteristiken von verschiedenen Browser-FAMILIEN für die Versionsnummernerkennung zu berücksichtigen (z.B: IE hat die Nummer immer hinter "MSIE", Opera hinter "Opera", welches ganz vorn oder ganz hinten stehen kann, etc...)
genau das macht mein script. Wenn ein browser hersteller wirklich mal den kompletten string ändern würde, dann würde der neue browser nicht erkannt werden, dass stimmt.
Die wichtigste funktion ist in meinem fall die grobe unterscheidung. in erster linie unterscheidet mein script nur zwischen 6 Typen browser:
MSIE
GCKO
NS4X
OPRA
KNQR
SFRI
ich versuche mich so weit wie möglich an allgemein gültige charakteristika der browser zu halten.
sie erkennt:
- internet explorer ab 4.0
Vermutlich nur solange, bis Microsoft den "Mozilla/4.0 (compatible..."-Modus aufgibt und sich eine eigene Kennung ausdenkt. Warum beispielsweise nicht beim neuen IE 7 damit anfangen?
nein, die IE erkennung ist nicht nur am navigatot.userAgent festgemacht. ;-)
- alle gecko basierten browser (mozilla, firebird, k-meleon, netscape nach 4.x, chimera, galeon, beonex, etc.)
Damit allein hat man ja schon viel zu tun - bleibt die Frage, welchen Sinn das macht. Für Browserweichen jedenfalls keinen, denn die verstehen ja alle getElementById.
richtig, wie oben geschrieben, für browserweichen ist es sinnvoller, sie alle als Gecko zu betrachten. die differenzierung ist nur für so tolle "Hallo, du surfst mit..." scripte gedacht.
- netscape 4.x
Hurra - der einzige Browser, der auch in hundert Jahren noch sicher erkannt werden wird, weil sich an dem Teil nie mehr was ändern wird.
dazu sag ich nur:
//Netscape 4.x detection, now that's easy, look, wether the browser is dumb - well, that's netscape
if(!document.all && !document.getElementById)
Browser = "NS4X";
Der einfachste codeteil mneines scripts, udn greift immer ;-)
mehr probs macht ns4x da schon beim erkennen des betriebssystem ;)
Was ist mit den restlichen Browsern, die es für beliebige andere Betriebssysteme gibt? http://browsers.evolt.org ist voll davon. ;)
von welchen beliebten betriebssystemen redest du?
wenn es dich interessiert, heir die browser die es definitiv NCIHT findet ;)
- W3C Amaya (Doesn't support JavaScript)
- 1X (Doesn't support JavaScript)
- Internet Explorer < 4.0 (Too bad JavaScript support)
- WebTV (Too bad JavaScript support)
- Netshark (Doesn't support JavaScript)
- Lynx (Sad, but true, Doesn't Support JavaScript)
Die Liste ist leider nicht vollständig, er erkennt nämlich, um genau zu sein, alle nicht, die er nicht kennt ;) Das sind einige, nur Ihrer prozentualer Anteil ist gering ;) Trotzdem würde ich Sie gerne unterstützen, na mal sehn :)
natürlich erkennt es keine browser die javascript nicht, oder nicht ausreichend unterstützen.
Das ultimative Snifferskript unterstützt immerhin alle Browser ab Javascript 1.0. ;)
Glaub mir, wenn ich nicht ausreichend schreibe, meine ich, das sie mit for schleifen o.ä. nicht zurecht kommen ;)
Alles in allem, geb ich dir recht, es macht an und für sich keinen sinn, ja, aber es macht mri spaß, und deshalb verteidige ich mein scriptchen jetzt mal wie eine angegriffenen mami ;)
wenn du möchtest, schick ich dir das ding gern zu, bzw geb dir nen link, dann kannst du gerne den quelltext stück für stück ausseinander nehmen, und die schwächen aufzeigen, würde mich freuen :Þ
Lieber Gruß
Phil
ich bin ein nachmacher: http://www.eppstein.de