void: absolute Elementposition im IE (7.0) auslesen?

Beitrag lesen

Noch ein Fehler, im Standardmode ist es nicht document.body was du du im IE auslesen musst, sondern window.document.documentElement

?? ich weiß nicht genau was du damit meinst? was muss ich anstatt document.body.offsetLeft auslesen?

Wie ich schon ganz ganz am anfang sagte, es ist müßig über Probleme zu diskutieren, wenn wir nicht Wissen was du machst. Es taucht jetzt eine Sache nach der anderen auf, die für deine Fragestellung eine entscheidende Rolle spielt, die du aber nur nach und nach rausrückst. Es wäre für die ganze sache sinnvoll, eine Beispielseite zu bauen, anhand der man sieht wo die Probleme sind.

welche rel. dinge sind bis jetzt im nachhinein aufgetaucht?
ich stelle die frage gerne anders noch einmal:
Voraussetzungen: Internet Explorer 7.0 mit aktiviertem Javascript

Browse auf eine beliebige Seite. Nun gebe <gesuchten Code> in der Adresszeile ein (z.B. javascript:alert(document.getElementById('gesuchteID').offsetLeft); ).
<gesuchter Code>: die angezeigte Position eines beliebigen Elementes (Link, Image,...), welche mit der angezeigten Position am Bildschirm übereinstimmt (0/0 = linke obere Ecke des Dokumentfensters).

hoffe, dass diese frage klarer ist?

p.s.: @beispielseite: man kann jede beliebige seite nehmen, aber ich teste im moment alles mit

<?xml version="1.0" encoding="iso-8859-1"?>  
<!DOCTYPE html  
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html>  
<head>  
<title>test</title>  
<script type="text/javascript">
~~~~~~javascript
  
function getPos (o)  
{  
    var r = { top:0, left:0 };  
    if(!o) return r;  
    else if(typeof o == 'string' ) o = document.getElementById(o);  
    if( typeof o != 'object' ) return r;  
    if(typeof o.offsetTop != 'undefined')  
    {  
         r.left = r.top = 0;  
         while (o)  
         {  
  if(o.offsetParent)  
  {  
   if(o.offsetParent.currentStyle.position!='relative')  
   {  
                r.top  += parseInt( o.offsetTop );  
                r.left += parseInt( o.offsetLeft );  
   }  
  }  
  else  
  {  
               r.top  += parseInt( o.offsetTop );  
               r.left += parseInt( o.offsetLeft );  
  }  
  
              o = o.offsetParent;  
         }  
    }  
    return r;  
}  
  
function alertInfo()  
{  
 var msg="";  
 if(document.compatMode!="CSS1Compat") msg += "Quirksmodus\n";  
 else msg += "Standardkonformer Modus\n";  
  
 msg += "\nbody Offset: " + document.body.offsetLeft + '/' + document.body.offsetTop + "\n";  
  
    var coords = getPos(document.links[1]);  
    if (coords)  
      msg += "\nKoordinaten des 2.Links: " + coords.left + '/' + coords.top + "\n";  
  
 alert(msg);  
}
~~~~~~html
  
</script>  
</head>  
    <body id="documentBody" onload="alertInfo()">  
  
        <div id="div1">  
            <a id="a1" href="#">Placeholder text 1.</a>  
        </div>  
  
        <div id="div2" style="position:relative;top:100px;left:100px;">  
            <a id="a2" href="#">Placeholder text 2.</a>  
        </div>  
  
        <div id="div3" style="position:absolute;top:200px;left:200px;">  
            <div id="div4" style="position:relative;top:100px;left:100px;">  
                <a id="a3" href="#">Placeholder text 3.</a>  
            </div>  
        </div>  
  
    </body>  
</html>  

~~~ (mit W3C-Validator validiert)