在iframe中找出html元素的位置

时间:2012-06-05 08:38:41

标签: javascript html position

我想找出iframe中元素的位置。我正在尝试使用: -

//Function to find the position of element on page
function getElementPosition(elem){
  var posX = 0;
  var posY = 0;
  while(elem!= null){  
        posX += elem.offsetLeft;  
        posY += elem.offsetTop;  
        elem = elem.offsetParent;
    console.log("In function:" + elem.tagName + " " + posX + " " + posY);
  }                              
 return { x : posX, y : posY };  
}

获取iframe所有元素的列表

var doc1 = $('#page1').get(0).contentDocument; // page1 is id of iframe element
var list1 = doc1.getElementsByTagName('*');
console.log(list1.length);                     // Printing correctly
var index = prompt("Enter element index");
var elem1 = list1[index];
var pos1 = getElementPosition(elem1);
console.log("Positions:" + pos1.x + " " + pos1.y);

但这不起作用。最初elem不为null,但elem.offsetParent在每种情况下都为null。我做错了吗?

对于某些元素,它工作正常。但对于某些元素,offsetParent将为null,因此其offsetLeft为0且offetTop为0.

是否有其他方法可以找出每个元素的位置。

提前致谢..

1 个答案:

答案 0 :(得分:0)

您似乎已经在使用jQuery了。为什么不让jQuery为你做繁重的工作?

http://api.jquery.com/position/

http://api.jquery.com/offset/