Javascript 查找iframe中html元素的位置

Javascript 查找iframe中html元素的位置,javascript,html,position,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; ele

我想找出元素在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

是否有其他方法来确定每个元素的位置


提前感谢..

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


也许可以帮助您您只能从自己的域访问Iframe-同源策略限制从其他域访问Iframe。@Christoph Page仅在我的磁盘上。。因此,没有关于同源的问题Policy@blunderboychrome&ff将本地html资源视为跨域的。因此这里可能仍然存在“同源”问题。当然,您知道offsetParent仅适用于可见元素以及其父元素也可见的元素。