Der Dicki: Navigationsmenue für IE 5.0+, Netscape 5.0+ und Opera

Beitrag lesen

Hallihallo!

if (navigator.appName.indexOf('Netscape', 0) != -1)

WAAAHHH!!!1

Es ist nutzfrei, sich nach dem navigator-Objekt zu richten. Dies wird auch bei Opera in den if-Teil gehen, ohne zu prüfen, ob dieser
document.layers überhaupt kennt; und alle anderen

Die Überprüfung, ob ein Browser document.layers kennt, geschieht mit "if (document.layers)".

Da möchte ich einmal intervenieren ;)
Ich habe ja vor einiger Zeit mal mein DHTML- Menü gebastelt (das mit den Frames), und musste da logischerweise auch auf NS4.x prüfen.
Dabei ist mir aufgefallen, daß (document.layers) nicht automatisch "true" ist, wenn der Browser das Layerobjekt kennt, sondern erst, wenn auch wirklich ein layer definiert wurde.
Soll heissen:

<html>
  <head>...</head>
  <body>
  <script type="text/javascript">
   if (document.layers) {alert("Juhu!");}
  </script>
  </body>
</html>

blieb ohne Wirkung (wohlgemerkt: im NS4.75)

Hatte ich hingegen so etwas wie

<html>
  <head>...</head>
  <body>
    <layer id="blabla">  TEST TEST Ich bin ein Layer </layer>
    <script type="text/javascript">
    if (document.layers) {alert("Juhu!");}
    </script>
  </body>
</html>

hat mir brav mein Alert- Fenster ausgegeben...

Weil mich das ziemlich genervt hat, musste ich daraufhin auch das navigator- Objekt zur Identifikation benutzen (allerdings nur für den alten NS)

Oder habe ich da einen dummen Denkfehler drin?

Viele fragende Grüße,
Der Dicki

Cheatah