在互联网上搜索后,我有了这些标准方法来查找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
答案 0 :(得分:0)
offsetLeft
和offsetTop
为您提供相对于定位父级的位置,而不是相对于整个文档的位置。
您的函数必须以递归方式保持偏移,直到它们返回null
,这意味着您处于文档级别。然后将所有偏移相加,得到总偏移量。