2013-04-01 140 views
1

我正在从事项目Java在Java中查找DOM元素的绝对位置的代码

在这个项目中,我必须找到DOM元素的绝对位置。但我不知道该怎么做。

我在网上搜索,我发现相同的Javascript。我从here发现了这个。

代码是这样

function getPosition(element) { 
    var xPosition = 0; 
    var yPosition = 0; 

    while(element) { 
     xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft); 
     yPosition += (element.offsetTop - element.scrollTop + element.clientTop); 
     element = element.offsetParent; 
    } 
    return { x: xPosition, y: yPosition }; 
} 

当我试图用Java编写,offsetLeft此代码,的offsetTop变量是找不到的。你能告诉我,我怎样才能用Java编写这段代码?

编辑1号

是否有使用Jsoup为同任何方法?

+0

您的Java代码将在哪里运行?服务器端,在哪里编写HTML?客户端,在Java applet中?另外,你打算如何处理元素的绝对位置?你试图完成的更大目标是什么?可能有一个更简单/更直接的方法来完成它。 – miorel

+1

@miorel我在前面的问题中回答所有问题http://stackoverflow.com/questions/15718235/optimized-algorithm-to-compare-templates-of-two-urls – devsda

+0

@miorel我通过使用'Document doc1 = Jsoup.connect(url1).get();' – devsda

回答

0

只有两个方法,让你在Jsoup的位置:

(你可以得到孩子的的计数太)

但是没有offsetLeftoffsetTop in Jsoup

+1

'Ie如果这是第一个元素同胞,返回0.'。这是什么意思? 此方法是否返回此元素的绝对位置? – devsda

+2

我不这么认为。你会得到兄弟姐妹的位置(顺序),而不是绝对索引。所以'0'是第一个*兄弟*,而不是第一个元素。 – ollo