Taurus: Div's & Netscape

Nun, gleich zu meinem Problem:

Netscape erkennt layer(div) nicht mehr, wenn man im vorangehendem layer(div) einen weiteren definiert hat.
Klar?
<div id="1">
text
</div>
<div id="2">
text
</div>

so gehts, über document.layers[] kann man auf id=2 zugreifen, ABER
<div id="1">
  <div id="1_1">
  text
  </div>
</div>
<div id="2">
text
</div>

so geht's nicht, id=2 liest er nicht mehr ein (ie macht's). desselbe passiet aber, wenn ich statt div id=1_1 eine tabelle plaziere - div id=2 gibts's fürn netscape nicht!?!

wie kann ich das umgehen, oder mache ich was falsch?
danke
taurus

ps. wann gibt's endlich eine einheitliche js-interpretation??? jaja, ich weiss: NIE!

  1. Hi
    Ich hab erst gar nicht verstanden wo da ein Problem sein soll...bis ich das ganze mal selber probiert habe ;-)
    Das Problem ist folgendes: Wenn du den Layern anstaendige namen gibst, die nicht mit einer Zahl anfangen, dann scheints zu klappen. Wenn der Layername mit einer Zahl anfaengt wird zumindest meine CSS definition ignoriert und der Layer ist nur noch ein normaler div tag. Ausserdem wird bei document.layers[2] und sogar bei document.layers["2"] immer der dritte Layer und nicht irgendein layer mit dem namen 2 angesprochen.
    Fazit: bei Javascript muss man sehr vorsichtig beim vergeben von namen sein! Auch der Unterstrich scheint verboten zu sein in layernamen. Das heisst wenn ich deinen div id=1_1 in id="layer1_1" umbenenne dann klappst immer noch nicht. Aehnliche Probleme gibt es wenn man einer Javascriptfunktion den gleichen namen gibt wie einem Layer, dann wird die Funktion naemlich nicht aufgerufen sondern es wird versucht den Layer anzusprechen. Wenn du die Funktion test in tester umbenennst wirst du sehen was ich meine ;-))
    So genug gelaber hier ist der Quelltext
    <html>
    <head>
    <title>divs</title>
    <style type="text/css">
    <!--
    #layer1 {position:absolute; top:10;left:40;}
    #layer1b {position:absolute; top:10;left:10;}
    #layer2 {position:absolute; top:40;left:40;}
    #tester {position:absolute; top:60;left:40;}
    -->
    </style>
    <script language="JavaScript">
    <!--
    function test() {
    alert("Obenpos von Layer2:"+document.layer2.top);
    return
    }
    //-->
    </script>
    <noscript></noscript>
    </head>
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    <div id="layer1">
      <div id="layer1b">
      text Layer1_1
      </div>
    </div>
    <div id="layer2">
    text Layer2
    </div>
    <div id="tester">
    <a href="#" onclick="test();return false;">Layerposition von Layer2</a>
    </div>
    </body>
    </html>

    viele Gruesse Holger