2009-03-02 4 views
0

Ich möchte die absolute Position (Pixel von oben und links) eines HTML-Elements in einem iFrame, der gescrollt hat, kennen. Ich habe versucht, die ‚findPos‘ Skript von Quirksmode mit (http://www.quirksmode.org/js/findpos.html):Wie kann ich die absolute Position eines Elements in einem Iframe ermitteln, das die Bildlaufleiste des Frames in Javascript berücksichtigt?

function findPos(obj) { 
    var curleft = curtop = 0; 
    if (obj.offsetParent) { 
     do { 
      curleft += obj.offsetLeft; 
      curtop += obj.offsetTop; 
     } 
     while (obj = obj.offsetParent); 
     return [curleft, curtop]; 
    } 
} 

Dies ist nicht für die Tatsache zu berücksichtigen scheint, dass die iFrame gescrollt hat. Wie kann ich dieses Skript ändern, um die Rolle des iFrames zu berücksichtigen?

Antwort

0
function findPosRelativeToViewport(obj) { 
    var pos= findPos(obj); 
    var root= document.compatMode=='BackCompat'? document.body : document.documentElement; 
    pos[0]-= root.scrollLeft; 
    pos[1]-= root.scrollTop; 
    return pos; 
} 

(die CompatMode Sachen für IE in Quirks Mode gerecht zu werden zu sein. Aber nicht Quirks-Modus verwenden.)

Verwandte Themen