Stefan: Netscape 6.1 und document.layers

Hi,
habe in meiner Seite folgende Befehlsstruktur:

if (document.layers) {...}
else {...}

um nach IE und Netscape zu trennen. Funzt unter NS 4.5 und 4.75.
Unter der neuen 6.1 Version ist er mir immer in den Teil für den IE reingelaufen und hat Fehler produziert. Auch statt else {...} einfach if (document.all) {...} zu verwenden bringt nichts, dann wird der gesammte Teil ignoriert.

hat da irgendwer gleiche oder vielleicht bessere Erfahrungen.

Gruß
Stefan

P.S. würde mich nach NS6 mal wieder auch einen Netscape freuen, der funktioniert ;-)

  1. probier mal das:

    <script language="javascript">
    <!---
    if (document.layers){location.replace("./netscape.html");}
    else
    if (navigator.appName == "Netscape"){location.replace("./netscape.html");}
    // --->
    </script>

    1. Sorry,
      hab mich da wohl etwas wage ausgedrückt.
      Ich habe in meiner Seite mehrere Layer, auf die ich zugreifen will. Also greif ich mit document.all per IE zu (das klappt) und mit document.layers per Netscape. Das klappt nicht, bzw. nur beim NS6.1 nicht.

      So z.B.

      <script>
       if (document.layers)
        {
         document.layers['l5'].visibility = "hide";
        }
       if (document.all)
        {
         document.all['d5'].style.visibility = "hidden";
        } </script>

      gruß
      Stefan

      P.S. Trotzdem Danke für Deine Idee

      1. Sorry,
        hab mich da wohl etwas wage ausgedrückt.
        Ich habe in meiner Seite mehrere Layer, auf die ich zugreifen will. Also greif ich mit document.all per IE zu (das klappt) und mit document.layers per Netscape. Das klappt nicht, bzw. nur beim NS6.1 nicht.

        So z.B.

        <script>
        if (document.layers)
          {
           document.layers['l5'].visibility = "hide";
          }
        if (document.all)
          {
           document.all['d5'].style.visibility = "hidden";
          } </script>

        gruß
        Stefan

        P.S. Trotzdem Danke für Deine Idee

        netscape 6 versteht keine layers mehr (der ist nicht abwärtskompatibel, was ja eigendlich jedes programm sein sollte). dort mußt du wieder mit divs arbeiten. netscape geht doch hoffendlich bald pleite. die sollen doch lieber waschmaschinen bauen und keine browser. *gg* schade nur für alle unix user:( vielleicht gibt es ja in 20 jahren auch interexenplorer für unix-systeme ;)

        1. [...] (der ist nicht abwärtskompatibel, was ja eigendlich jedes programm sein sollte).

          Wie kommst Du auf die Idee, daß Abwärtskompatibilität sein _muß_?
          Gerade M$ zeigt doch laufend, wie Kompatibilität (auch zu eigenen, älteren Produkten) vermieden wird, um Umsatz und Marktanteile zu optimieren. Dort heißt es dann 'technische Innovation'.

          Es gibt aber noch genügend gute Gründe, alte Funktionalität fallen zu lassen, insbesondere wenn es darum geht allgemein gültige Standards zu unterstützen.
          (Allerdings glaube ich nicht, daß die Entscheidung, die Layer wegzulassen, von Netscape kam, sondern eher in der Mozilla-Entwicklertruppe beschlossen wurde.)

          Grüße
            Klaus

          1. Joho,

            (Allerdings glaube ich nicht, daß die Entscheidung, die Layer wegzulassen, von Netscape
            kam, sondern eher in der Mozilla-Entwicklertruppe beschlossen wurde.)

            Vor allem, wo Netscape ungefaehr gar nix mehr mit dem Mozilla zu tun hat - ausser, dass sie
            den Gecko-Kern benutzen.

            Gruss,
             CK
             http://wwwtech.de

        2. hi!

          netscape 6 versteht keine layers mehr (der ist nicht abwärtskompatibel,
          was ja eigendlich jedes programm sein sollte).

          Quatsch, Programme muessen ueberhaupt nicht abwaertskompatibel sein, wenn
          sie ihre major version aendern. Dafuer gibt es dutzende weitere Beispiele,
          etwa die bereits genannten Microsoft-Programme, aber auch der Linux-Kernel,
          der in manchen Dingen nichtmal zwischen minor versions kompatibel ist.

          Wichtig ist bei Programmen wir Browsern nur, dass sie sich an die Standards
          halten, und das tut der Mozilla besser als jeder andere.

          dort mußt du wieder mit divs arbeiten. netscape geht doch hoffendlich
          bald pleite.

          Selbst wenn Netscape pleite geht -- was sehr unwahrscheinlich ist, da es
          ein Teil von der Welt groessten Online-Dienst AOL ist -- verschwindet der
          Browser Mozilla nicht vom Markt, denn das ist ein Open Source Projekt.

          Im uebrigen moechtest du mehr als einen Browser haben, denn ganz abgesehen
          davon, dass der Internet Explorer totaler Schrott ist, behindern Monopole
          den Fortschritt, was hoffentlich jedem klar ist.

          schade nur für alle unix user:( vielleicht gibt es ja in 20 jahren auch
          interexenplorer für unix-systeme ;)

          Wenn es in diesem Universum ein hoeheres Wesen geben sollte, dann bewahre
          es uns vor dem Moment, in dem der Internet Explorer auch noch fuer alle
          Unix-Systeme verfuegbar ist.

          bye, Frank!

      2. Sorry,
        hab mich da wohl etwas wage ausgedrückt.
        Ich habe in meiner Seite mehrere Layer, auf die ich zugreifen will. Also greif ich mit document.all per IE zu (das klappt) und mit document.layers per Netscape. Das klappt nicht, bzw. nur beim NS6.1 nicht.

        So z.B.

        <script>
        if (document.layers)
          {
           document.layers['l5'].visibility = "hide";
          }
        if (document.all)
          {
           document.all['d5'].style.visibility = "hidden";
          } </script>

        Für Netscape 6, IE 5.5+ und Opera prüfst du nun noch auf
            if (document.getElementsById)
             {
              document.getElementById('d5').style.visibility = "hidden";
             }

        bzw. du solltest sicherstellen, jeweils nur einen Zweig auszuführen, also "else if".

        Die Tatsache, daß Netscape 6 kein <layer> und kein document.layers mehr kennt, ist übrigens schon lange bekannt, und du solltest bei der Forumssuche im alten Archiv (also 1998/1999/2000) sicher viele dieser Beiträge finden können.

        Es ist zwar eine Inkompatibilität zur alten Netscaepe-Version, aber es ist endlich kompatibel mit dem vom W3C vorgeschlagenen Standard. Die Tatsache, daß es NS6, IE5.5 und Opera verstehen sollte es irgendwann unnötig machen, noch solche Browserweichen programmieren zu müssen. Netscape 4 ist ja nur deswegen noch so populär, weil es noch keine vernünftige Folgeversion gab. Mit Netscape 6.1 könnte sich das langsam ändern.

        - Sven Rautenberg