Stefan Ihringer: IE5 kennt seine eigenen Styles nicht?

Hi,

ich bin beim DHTML-len auf folgendes Problem gestoßen, ich habe es nur auf IE5 ausprobieren können, vielleicht sind andere Versionen auch betroffen (oder ich hab ein Brett vor'm Kopf ;-):

In folgendem Code ist xy ein DIV, der absolut positioniert ist. Nun will ich seine Koordinaten wissen:

alert(document.all.xy.style.top);

Mist, eine leere Box! Also setzen wir mal einen Wert:

document.all.xy.style.top = 300;
alert(document.all.xy.style.top);

Aha, jetzt steht "300px" drinnen. Ich habe aus alten Beiträgen schon von der Sache mit dem "px" erfahren, allerdings ist das bei mir ja erstmal nicht das Problem :-(

Hat jemand das schonmal erlebt und weiß Rat, wie man die Position eines DIVs ermittelt, bevor man explizit was zugewiesen hat? (Natürlich habe ich vorher per CSS die top- und left-Koordinaten angegeben, und xy wird auch brav an der gewünschte Stelle dargestellt.)

MfG,
Stefan

  1. Hat jemand das schonmal erlebt und weiß Rat, wie man die Position eines DIVs ermittelt, bevor man explizit was zugewiesen hat? (Natürlich habe ich vorher per CSS die top- und left-Koordinaten angegeben, und xy wird auch brav an der gewünschte Stelle dargestellt.)

    Wenn man Positionsangaben in Klassen oder IDs verpackt, werden diese Werte offenbar im DOM nicht registriert, mit Inline-Styles sollte es klappen. Probiere mal dieses Beispiel aus (auf die Texte Text 1 bzw. Text 2 klicken):

    <html>
    <head>
    <title>Test</title>
    <style type="text/css">
    <!--

    #test1
    {
    position: absolute;
    top: 100px;
    left: 100px;
    }

    -->
    </style>
    </head>
    <body>
    <div id="test1" OnClick="alert('id='+this.id+'\ntop: '+document.all['test1'].style.top+'\nleft: '+document.all['test1'].style.left)">Test 1</div>
    <div id="test2" style="position: absolute; top: 200px; left: 200px;" OnClick="alert('id='+this.id+'\ntop: '+document.all['test2'].style.top+'\nleft: '+document.all['test2'].style.left)">Test 2</div>
    </body>
    </html>

    HTH & Gruss, Thomas

    1. Wenn man Positionsangaben in Klassen oder IDs verpackt, werden diese Werte offenbar im DOM nicht registriert, mit Inline-Styles sollte es klappen. Probiere mal dieses Beispiel aus (auf die Texte Text 1 bzw. Text 2 klicken):

      Danke, so klappt es! Mann, das sollte in die Auslese ;-)

      MfG,
      Stefan