6

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 です。

各要素の位置を見つける他の方法はありますか。

前もって感謝します..

4

1 に答える 1

0

すでに jQuery を使用しているようです。jQuery に面倒な作業を任せてみませんか?

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

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

于 2012-06-08T18:32:50.590 に答える