André Laugks: Plattformabfrage, Fehler unter NS 3.*

Hallo!

Ich möchte je nach Betriebssystem verschiedene *.css dateien laden. Eine für Windows und eine für Mac und Unix. dazu habe ich eine kleine Plattformabfrage erstellt.

<script  language="JavaScript">
<!--

if (navigator.platform.indexOf("Win") != -1)
{
document.writeln('<link rel="STYLESHEET" type="text/css" href="win.css">');
}
     else
     {
     document.writeln('<link rel="STYLESHEET" type="text/css" href="mac.css">');
     }

//-->
</script>

Unter Windows 95 Netscape 4.5 kein Problem. Unter Mac (Netsape 4.5 / IE 4.5) wurde die mac.css geladen.

Jetzt wollte ich mal schauen was andere/ältere Browser zu dem Script sagen, also einen Fehler produzieren oder nicht! Opera hält die Füße still. Die *.css wird zwar unter win nicht geladen, aber egal, kann ich mit Leben. Der Inhalt der Seite leidet ja nicht drunter.

Unter Netscape 3.01 bekomme ich aber ein Java Script Error:
             Navigator.platform has no property named 'index.Of'.
Wenn ich das mal übersetze, kann der Navigator 3.01 den String "Win" nicht finden! Oder?
Laut den refernzen muß er ihn aber finden, mache ich einen Denkfehler? Könnt Ihr mir einen Tip geben, wie ich die Fehlermeldung beseitige, auch zuverlässig unter IE 3.*. Unter IE3.* kann ich nicht testen.
Bei IE3.* dachte ich schon an document.image. ich zitiere mal aus einem Abschnitt einen Satz: JavaScript von Stefan Koch: "So existiert z.B. das Image-Objekt im Microsoft Explorer 3.0 auf Macintosh (nicht jedoch in der Windows-Version)." Ich dachte immer, es existiert auch unter Windows oder lese ich nur falsch!

Mit freundlichen Grüßen

André Laugks

  1. Hallo André,

    Wenn ich das mal übersetze, kann der Navigator 3.01 den String "Win" nicht finden! Oder?

    Nicht ganz, es heisst, dass der Netscape 3.0 das Objekt platform nicht kennt, weil es erst zu JS 1.2 gehoert. Versuche die ganze Abfrage mal mit, userAgent statt platform und Frage zuerst ab, ob "Mac" im String vorkommt. Bei mir laeufts dann. Muesste aber auch mit Win funktionieren.

    Gruss
    FJ