Mike: Layer fixieren im Netscape

Hallo Zusammen,

Ich habe folgendes Problem mit einem JavaScript/DHTML in Netscape.

Ich habe eine Seite auf der ich ein einen Layer immer an der selben stelle, absolut zum Browserfenster anzeigen möchte. Auch wenn ich auf der Seite scrolle.

In IE funktionert das gefundene Script einwandfrei. Im Netscape leider nicht und alle Versuche das script Netscape tauglich zu machen sind gescheitert.

Kann mir jemand weiter helfen?

Schonmal vielen Dank im Voraus!
Mike

<html>
<head>
<script>
function keepLayerFixed()
  {
     var menuMidden = window.parent.document;
     for(i = 1 ; i < 5; i++) {
       mLayer = menuMidden.getElementById("ImageViewer");
       if(mLayer) {
         if(mLayer.style.display != 'none') {
             mLayer.style.top = (i * 21) +   window.parent.document.body.scrollTop;
  //mLayer.style.top = (i * 21) + window.pageYOffset;
         }
        }
      }
  }
</script>

</head>
<body onScroll="keepLayerFixed()">
<div id="menu_links_1" z-index="106"  style="position:absolute; top=70; left:10; z-index:106; display:block">
This is my Layer....
</div>
<table height="1600" border="1">
<tr><td>.</td></tr>
</table>
<h1>End</h1>
</body>
</html>

  1. Ich habe folgendes Problem mit einem JavaScript/DHTML in Netscape.

    Netscape 3 kann kein dHTML!

    Ich habe eine Seite auf der ich ein einen Layer immer an der selben stelle, absolut zum Browserfenster anzeigen möchte. Auch wenn ich auf der Seite scrolle.

    Dafür existiert: position:fixed;
    http://www.jendryschik.de/wsdev/css/fixed/

    var menuMidden = window.parent.document;

    window.parent ist gleich parent und wenn du keine Frames hast ist es gleich window.

    <javascript:alert((window.parent == window))>
    <javascript:alert((window.parent == parent))>

    <div id="menu_links_1" z-index="106"  style="position:absolute; top=70; left:10; z-index:106; display:block">

    Es fehlt die Einheit für top/left.

    Struppi.

    1. Danke für die promte Antwort Struppi & Danny

      Das mit dem position:fixed funktionert leider nicht im IE5.5.
      Die Seite sollte auf Browser ab Version 4 richtig angezeigt werden.

      Das window.parent habe ich drin, weil ich das Div aus einem IFrame hraus aufrufe.

      Was würdes Du jetzt machen?

      Gruss Mike

      Hier der angepasste Code:
      <html>
      <head>
      <script>
      function keepLayerFixed()
        {
           var menuMidden = window.parent.document;
           for(i = 1 ; i < 5; i++) {
             mLayer = menuMidden.getElementById("menu_links_1");
             if(mLayer) {
               if(mLayer.style.display != 'none') {
                  mLayer.style.top = (i * 21) + window.parent.document.body.scrollTop;
               }
               window.status = "top: "+mLayer.style.top;
              }
            }
        }
      </SCRIPT>
      </head>
      <body onScroll="keepLayerFixed()">
      <div id="menu_links_1" z-index="1"  style="position:absolute; top=70px; left:10px; z-index:1; display:block">
      This is my Layer....
      </div>
      <table height="1600" border="1">
      <tr><td>.</td></tr>
      </table>
      <h1>End</h1>
      </body>
      </html>

      1. Ab Version 4? getElementById funktioniert aber erst ab 5.

        Dann brauchst Du noch document.all und document.layers... Also ich würde nur noch DOM (ab 5) unterstützen, ist sonst zu viel Aufwand.

        1. Schon überzeugt. ;-)
          ...und hast du eine Idee wie?

          Ab Version 4? getElementById funktioniert aber erst ab 5.

          Dann brauchst Du noch document.all und document.layers... Also ich würde nur noch DOM (ab 5) unterstützen, ist sonst zu viel Aufwand.

          1. Mhmmm...

            Um das Skript in neueren Netscape, bzw. Mozilla zum Laufen zu bringen, kontrolliere mal folgende Punkte (auf Kompatiblität):

            • Attribut onScroll
            • document.body.scrollTop

            Hinweis:

            <div id="menu_links_1" z-index="106" style="position:absolute; top=70; left:10; z-index:106; display:block">

            In HTML gibt's kein z-index Attribut. Das gehört nur in den CSS-Bereich. Hinter top gehört ein : kein = und hinter die Werte eine Einheitsangabe (z.B. px) ...

            MfG
            Danny

  2. Und welche Version von Netscape meinst Du?