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になります。
他の方法で各要素の位置を調べることはできますか?
事前に感謝..
多分http://stackoverflow.com/questions/306305/what-would-make-offsetparent-nullあなたはそれから提示された場合にのみ、iFrameをアクセスすることができ –
あなたを助けることができます自分のドメイン - 同じ発信元ポリシーは、他のドメインからのIframeへのアクセスを制限します。 – Christoph
@Christophのページは私のディスクにのみあります。同じ原点のポリシーについては何も質問はありません。 – sachinjain024