2012-06-05 9 views
6

iframeにある要素の位置を調べたいと思います。私はotの使用をしようとしています: -iframeのhtml要素の位置を外します

//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になります。

他の方法で各要素の位置を調べることはできますか?

事前に感謝..

+0

多分http://stackoverflow.com/questions/306305/what-would-make-offsetparent-nullあなたはそれから提示された場合にのみ、iFrameをアクセスすることができ –

+3

あなたを助けることができます自分のドメイン - 同じ発信元ポリシーは、他のドメインからのIframeへのアクセスを制限します。 – Christoph

+0

@Christophのページは私のディスクにのみあります。同じ原点のポリシーについては何も質問はありません。 – sachinjain024

答えて

関連する問題