在因特網上搜索後,我找到了這些用於查找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視頻頁面上的「喜歡」按鈕的位置,這樣我可以(使用的GreaseMonkey)插入我自己的「格」在那裏。它適用於簡單的Youtube版本,但不適用於它的cosmicpanda版本(youtube.com/cosmicpanda)。這種情況下,有人能幫助我知道爲什麼它不在那裏工作?
-
謝謝
的Piyush
在你的代碼中,只有'curleft'是一個局部變量。 'curtop'成爲一個隱含的全局變量。做這個,而不是:'var curleft = 0,curtop = 0;' –
這可以幫助你:http://www.quirksmode.org/js/findpos.html – meo
quirksmode.org鏈接包含幾乎相同的代碼,已經寫在上面。它可以工作,但只適用於簡單版本的YouTube。他們做了一些設計更改,這不允許我獲得正確的位置。我甚至嘗試過使用getBoundingClientRect(),它以更快更簡單的方式完成同樣的事情,但結果相同。請有人使用上面的鏈接去youtube的cosmicpanda版本,並嘗試說明爲什麼它不適用於Like按鈕。 –