Meine altgediente Browserweiche funzt nicht mehr so richtig mit NS6 Opera etc. Diese Browserweiche prüfte nur auf appName, habe aber damit nicht die besten Erfahrungen gemacht und suche drum eine Weiche die mit den Objekten (layer, document.all etc) arbeitet. Hat jemand eine Quelle wo man sich über aktuelle Code-Schnippsels und Ideen informieren kann?
Bei einer Browserweiche sollte man sinnvollerweise fragen, warum die Weiche genutzt werden soll.
Wenn's darum geht, dem Mac-IE, Mac-NS, PC-IE, PS-NS und "anderen" Browsern ein maßgeschneidertes Stylesheet zu präsentieren, ist die Frage nach dem User-Agent gerechtfertigt. Denn nur so kann man die Plattformen erkennen, und nur so weiß man, daß man da einen IE oder NS vorliegen hat.
Wenn's darum geht, mit gewissen Objekten gewisse Layer etc. zu manipulieren, dann sollte man die Abfrage auf Vorhandensein der Objekte machen - das funktioniert dann meist auch mit anderen, kompatiblen Browsern. Opera kann z.B. auch document.all, wenn er im IE-Modus arbeitet. Er kann immer document.getElementById (genauso wie der IE5+).
Im Prinzip brauchst du drei Abfragen:
<script ...>
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
v6 = (document.getElementById)? true:false
</script>
Wenn du die Verzweigungen im Code dann mit if/elseif erstellst, bist du auf der sicheren Seite, auch wirklich nur EINE Variante auszuführen (denn IE5+ ist sowohl ie4, als auch v6).
Zuviele Erkennungsfälle sind nicht unbedingt wünschenswert, denn die muß man ja alle programmtechnisch abfangen und behandeln. Macht in der Regel viel Arbeit. ;)
- Sven Rautenberg