Claudia: Für Netscape scheinen divs nicht zu existieren

Hallo Forumianer,

Ich hoffe inständig, daß ihr mir folgendes erklären könnt:

Ich habe bei einer Seite mehrere divs angelegt (5 Stück), die beim laden der Seite zunächst mit visibility:hidden ausgeblendet werden. Wenn ich jetzt versuche auf sie zuzugreifen, tut der Netscape so als würden nur die ersten beiden existieren (also die divs, die zuerst in der datei vorkommen).
Warum? Ich bin ratlos.

Vielen Dank schon mal
Claudia

  1. Hai Claudia

    es wäre seht hilfreich, wenn du den Code mal posten würdest...
    grundsätzlich funktionieren  DIVs auch in Netscape, aber ich habe noch keine möglichkeit gefunden, die visibility nachträglich auf "show" zu setzen...

    bis denn

    der gero

    1. ^Hallo Gero,

      es wäre seht hilfreich, wenn du den Code mal posten würdest...

      die seite:
      <body>
      <stinknormales HTML>
      ...
      </stinknormales HTML>
      <div id="div1">
      ...
      </div>
      <div id="div2">
      ...
      </div>
      <div id="div3">
      ...
      </div>
      <div id="div4">
      ...
      </div>
      <div id="div5">
      ...
      </div>
      </body>
      Die divs werden per css im head ausgeblendet und absolut positioniert.
      Jetzt kommt noch das skript:

      function anzeige(was){

      var bereiche=new Array;
      bereiche[0]="div1";
      bereiche[1]="div2";
      bereiche[2]="div3";
      bereiche[3]="div4";
      bereiche[4]="div5";

      for (i=0;i<5;i++){
      if (i!=was){document[bereiche[i]].visibility="hidden";}
      else{
      document[bereiche[was]].visibility="visible";}
      }

      }

      Funktionsaufruf im href:
      onmouseover="anzeige(3)"  <----bzw. anzeige(1,2...)

      Die Funktion habe ich geschrieben, damit je nach dem die entsprechenden divs ein- und ausgeblendet werden.
      Der Netscape macht es auch...aber eben nur mit den ersten beiden. dann meldet er
      document[bereiche[i]] has no properties. Das heißt er meldet es natürlich wegen der Schleife jedes mal. So nach dem Motto:
      document[bereiche[0]]? Klar, da isser, blende ich doch mal ein...
      document[bereiche[1]] ? Na immer !
      document[bereiche[2]]? Hä, den gibt's hier nicht!

      grundsätzlich funktionieren  DIVs auch in Netscape, aber ich habe noch keine möglichkeit gefunden, die visibility nachträglich auf "show" zu setzen...

      Also das geht schon, aber nicht mit "show" sondern mit "visible", aber das hast du ja schon gesehen..

      Ich hoffe ich habe das Problem irgendwie verständlich beschrieben.
      Schöne Grüße
      Claudia

      1. Hallo Claudia,

        document[bereiche[1]] ? Na immer !

        du muss fuer den netscape "document.layer" verwenden

        document.layers['navi']

        (navi iste die layer-id)

        Gruesse
        Wilhelm

        1. Hallo Claudia,

          du muss fuer den netscape "document.layer" verwenden

          nicht zwingend, aber so ist es schon richtig. Der Witz ist folgender:

          Nehmen wir an wir haben nur eine Zeile code in dem skript, die lautet
          document.layers['div1'].visibility="visible";

          funktioniert prächtig.
          jedoch:
          document.layers['div4'].visibility="visible";
          Fehler! document.layers.div4 has no properties. Obwohl dieser div wirklich da ist.
          Ändere ich die Reihenfolge in z.B. div4, div5, div1, div2, div3, dann funktioniert es tadellos mit div4 und 5...
          Ist das nicht echt komisch????

          Viele Grüße
          Claudia

          1. Hy Claudia:

            Dein Problem hatte ich auch schon.

            Dabei hatte ich im Style-Bereich etwas geschlafen und die Formatierung stimmte nicht 100%ig.

            Zur Kontrolle kannst Du unter Ansicht die Seiteninformationen anschauen. Dort sind auch alle für Netscape existierende Div-Layers verzeichnet.

            Christoph

  2. Hallo Claudia,
    bei mir klappt's folgendermaßen:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
    <title>Untitled</title>
    <style type="text/css">
    #div1{position:absolute;visibility:hide}
    #div2{position:absolute;visibility:hide}
    #div3{position:absolute;visibility:hide}
    #div4{position:absolute;visibility:hide}
    #div5{position:absolute;visibility:hide}
    </style>
    <script>
    function anzeige(was){

    var bereiche=new Array;
    bereiche[0]="div1";
    bereiche[1]="div2";
    bereiche[2]="div3";
    bereiche[3]="div4";
    bereiche[4]="div5";

    for (i=0;i<5;i++){
    if (i!=was){document[bereiche[i]].visibility="hidden";}
    else{
    document[bereiche[was]].visibility="visible";}
    }

    }
    </script>
    </head>

    <body>
    <a href="javascript:anzeige(0)">zeige1</a><br>
    <a href="javascript:anzeige(1)">zeige2</a><br>
    <a href="javascript:anzeige(2)">zeige3</a><br>
    <a href="javascript:anzeige(3)">zeige4</a><br>
    <a href="javascript:anzeige(4)">zeige5</a>

    <div id="div1">
    1111
    </div>
    <div id="div2">
    2222
    </div>
    <div id="div3">
    3333</div>
    <div id="div4">
    4444
    </div>
    <div id="div5">
    5555
    </div>
    </body>

    </html>

    1. Hallo!

      Nichts für ungut, aber:

      <style type="text/css">
      #div1{position:absolute;visibility:hide}
      #div2{position:absolute;visibility:hide}
      #div3{position:absolute;visibility:hide}
      #div4{position:absolute;visibility:hide}
      #div5{position:absolute;visibility:hide}
      </style>

      Das ist kein CSS, sonder eine Mischung aus CSS und JSSS.
      So funktioniert es auch, unter NS ja, unter IE nicht.

      Grüße
      Thomas

      1. Hallo!

        Nichts für ungut, aber:
        Für IE ist eh' kein Skriptzweig geschrieben worden.
        Grüße Hartmann

  3. Hallo Forumianer,

    Ich hoffe inständig, daß ihr mir folgendes erklären könnt:

    Ich habe bei einer Seite mehrere divs angelegt (5 Stück), die beim laden der Seite zunächst mit visibility:hidden ausgeblendet werden. Wenn ich jetzt versuche auf sie zuzugreifen, tut der Netscape so als würden nur die ersten beiden existieren (also die divs, die zuerst in der datei vorkommen).
    Warum? Ich bin ratlos.

    Vielen Dank schon mal
    Claudia

    »»

    Ähnlich (seltsame) Effekte traten bei mir auf, weil Netscape ein emotionales Problem mit relativ positionierten DIVs hat. Man kann DIVs mit Netscape mit allen Layerbefehlen bearbeiten, sobald man die DIVs mit "position:absolute" positioniert. Dann fkt auch Netscape (meisst) stabil.

  4. Hallo Claudia,

    hatte fast das gleiche Problem, der NS erkannte meine <div> nicht. Antje hat mir da geholfen. Schau doch mal zu http://www.teamone.de/selfaktuell/self_forum/23018.html

    ein paar threat weiter unten. Vielleicht kann ich ja noch als schlechtes Beispiel dienen...;)

    Gruß

    Harald Legler

    1. Hallo Claudia,

      hatte fast das gleiche Problem, der NS erkannte meine <div> nicht. Antje hat mir da geholfen. Schau doch mal zu http://www.teamone.de/selfaktuell/self_forum/23018.html

      ein paar threat weiter unten. Vielleicht kann ich ja noch als schlechtes Beispiel dienen...;)

      Gruß

      Harald Legler

      Ich habe es noch einmal überprüft, aber nur im Navi 4.5
      Ein nichtgeschlossener p-Tag in einem div verhindert definitiv, daß nachfolgende divs auch wenn sie absolut positioniert werden, nicht mehr als solche erkannt werden.

      Viele Grüße

      Antje

      PS: Harald, ich glaube solch ein Fehler wird dir nie wieder unterlaufen und toll, daß du es weitergegeben hast.

  5. Ich habe bei einer Seite mehrere divs angelegt (5 Stück), die beim laden der Seite zunächst mit visibility:hidden ausgeblendet werden. Wenn ich jetzt versuche auf sie zuzugreifen, tut der Netscape so als würden nur die ersten beiden existieren (also die divs, die zuerst in der datei vorkommen).

    Bei Netscape ist es UNBEDINGT erforderlich, dass die Seite auch wirklich korrekt ist. Ein einziger </> vergessen oder falsch gesetzt oder einer ID doppelt vergeben und schon gibt es Probleme. Ich bin sicher, wenn Du alles ueberpruefts im zweiten oder dritten DIV, dann wirst Du den Fehler finden.

    Viele Gruesse, Thomas Hieck

    1. Bei Netscape ist es UNBEDINGT erforderlich, dass die Seite auch wirklich korrekt ist. Ein einziger </> vergessen oder falsch gesetzt oder einer ID doppelt vergeben und schon gibt es Probleme. Ich bin sicher, wenn Du alles ueberpruefts im zweiten oder dritten DIV, dann wirst Du den Fehler finden.

      Jepp

      und die Semikolons in den Style Tags sind auch noch
      oberwichtig .. obwohl vergessene Semikolons da meist
      gleich zum Crash von Netscape führen...
      Wie auch immer... Validator ist bei Netscape mit
      solchen Problemen erste Plicht..

      gruss
      Jens