计算HTML元素的绝对位置不起作用

时间:2011-08-29 17:55:35

标签: javascript html

在互联网上搜索后,我有了这些标准方法来查找HTML元素的实际位置。像这样:

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

    return [curleft,curtop];
}        

我正在使用它来查找任何YouTube视频页面上“赞”按钮的位置,以便我可以在那里插入我自己的'div'(使用GreaseMonkey)。它完全适用于简单的Youtube版本,但不适用于它的cosmicpanda版本(youtube.com/cosmicpanda)。在这种情况下,它已经过时了。有人能帮助我知道它为什么不在那里工作?

-

谢谢,
PIYUSH

1 个答案:

答案 0 :(得分:0)

offsetLeftoffsetTop为您提供相对于定位父级的位置,而不是相对于整个文档的位置。

您的函数必须以递归方式保持偏移,直到它们返回null,这意味着您处于文档级别。然后将所有偏移相加,得到总偏移量。