如何确定iframe中元素的绝对位置,以便在javascript中考虑框架的滚动?

时间:2009-03-02 22:34:46

标签: javascript

我想知道滚动的iFrame中HTML元素的绝对位置(顶部和左侧的像素)。我尝试过使用quirksmode(http://www.quirksmode.org/js/findpos.html)中的findpos脚本:

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

这似乎没有说明iFrame可能已滚动的事实。如何修改此脚本以考虑iFrame的滚动?

1 个答案:

答案 0 :(得分: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;
}

(compatMode的东西是为了在Quirks模式下迎合IE。但是不要使用Quirks模式。)