2012-06-05 11 views
6

iframe içindeki bir öğenin konumunu öğrenmek istiyorum. ,iframe'de html öğesinin dışarı çıkış konumu

//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 tüm unsurların listesini almak için

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); 

Ama bu olmuyor: - Ben ot kullanımını çalışıyorum. Başlangıçta elem boş değil ama elem.offsetParent her durumda boş. Yanlış mı yapıyorum?

Bazı öğeler için iyi çalışıyor. Ancak, bazı öğeler için, offsetParent sıfırdır ve böylece offsetLeft 0'dır ve offetTop 0'dır.

Her öğenin konumunu bulmak için başka bir yol var mı? peşin

Teşekkür ..

+0

belki http://stackoverflow.com/questions/306305/what-would-make-offsetparent-null Bunu dan yalnızca bir Iframe erişebilirsiniz –

+3

size yardımcı olabilir sizin kendi etki alanı - Aynı Kaynak Politikası, diğer alanlardan Iframe'e erişimi kısıtlar. – Christoph

+0

@Christoph Sayfa sadece diskin üzerindedir ... No Origin Policy hakkında başka soru yok – sachinjain024

cevap

İlgili konular