... oder "1" - wenn man davon ausgeht, dass "Mozilla 1.0" ja nun langsam in die Hufe gekommen ist.
Tach Forum!
Ich bin ja nun nicht unbedingt der JS-Guru, aber auch mir ist spätestens seit Lektüre des Buches von Nick Heinle bekannt, daß man möglichst eine Objekt-Prüfung vornehmen sollte, um einen bestimmten Browser oder dessen Version zu identifizieren und nicht (ausschließlich) irgendwelche navigator.appVersions abfragen.
Bislang wurden mit document.all der IE4+ und mit document.layers der NS4 relativ "eindeutig" identifiziert, die Möglichkeit von RollOvers zu erstellen schlicht mit document.images, das kann auch Klein-Opera - mehr war und ist für die meisten WebSites auch nicht "erforderlich", um einigermaßes "sicher" seine Scripte ohne Gemosere des userAgents laufen zu lassen.
Nun kommt der langerwartete Mozilla daher - der von Netsi-Fans heißersehte "IE-Killer" <g> - und siehe da:
kein document.all und kein document.layers - schade, schade, schade.
Das killt nicht nur IE sondern vermutlich auch einige Millionen liebevoll verscriptete WebSites... (vornehmlich NetObject Fusion-User werden vermutlich gucken, weil nix mehr geht <g>)
Keine der beiden o.g. Objekt-Auflistungen ist nämlich DOM-konform. MS hat document.all vermutlich aufgrund der damaligen CSS-Spec. eingebaut - auch blöd, daß das nun weg ist.
Da sich Mozilla aber an diese hält (und IE5/5 dieser sehr nahe ist, ätsch) bietet sich folge Abfrage an:
if (document.layers) {
// code für NS4
}
if (document.all document.styleSheets) {
// code für IE4/5 *UND* MOZ1/NS6
....
// ggf. weitere versionspezifische abfragen
}
innerhalb der 2. Abfrage kann man bei Bedarf dann einzelne "native IE-Goodies" wie gehabt mit if(document.all) ausklammern.
Und wer's nicht glaubt greift einfach zur Schere:
<script language="JavaScript" type="text/javascript">
<!--
if (document.layers) alert("Netscape 4");
if (document.all) alert("IE 4/5");
if (document.styleSheets) alert("Mozilla 1, Netscape 6, IE4, IE5, DOM 1.0");
// -->
</script>
Viel Spaß beim Umschreiben Eurer Scripte :-)
CirTap
PS: vielleicht kann der SelfBrowser ja nun auch bald in einem "Netscape" laufen <gg>