henry: fast gelöst

Beitrag lesen

Hallo

Größe (und Position) eines beliebigen Blockelements:

var getRect = function (o){
  var r = { top:0, left:0, width:0, height: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.height = o.offsetHeight;
    r.width = o.offsetWidth;
    r.left = r.top = 0;
    while (o && o.tagName != 'BODY') {
      r.top  += parseInt( o.offsetTop );
      r.left += parseInt( o.offsetLeft );
      o = o.offsetParent;
    }
  }
  return r;
}

Ich benutze nun diese Funktion (body) und rechne ein paar pixel für Kopf dazu... funktioniert Prima.
Als Übergabe funktioniert jedoch kein String ("body") sondern nur eine Objekt-Referenz unter Firefox 26.0. Das ist Schade da ich dem body immer eine "id" oder "name" geben muss.

var objRef = document.getElementById("bodyid");  

Vielleicht geht es einfacher/dynamischer ohne den <body> speziell zu verändern.

Danke
       henry