2012-06-05 12 views
6

Voglio scoprire la posizione di un elemento che è in iframe. Sto cercando l'uso OT: -Posizione di partenza dell'elemento html in 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 }; 
} 

per ottenere l'elenco di tutti gli elementi di 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); 

Ma questo non sta funzionando. Inizialmente elem non è nullo ma elem.offsetParent è nullo in ogni caso. Sto sbagliando?

Per alcuni elementi, funziona correttamente. Ma per alcuni elementi, offsetParent sta arrivando a zero e quindi il loro offsetLeft è 0 e offetTop è 0.

C'è un altro modo per scoprire la posizione di ciascun elemento.

Grazie in anticipo ..

+0

forse http://stackoverflow.com/questions/306305/what-would-make-offsetparent-null può aiutare a –

+3

È possibile accedere a un Iframe solo se è dalla tua own domain - Same Origin Policy limita l'accesso a Iframe da altri domini. – Christoph

+0

@Christoph La pagina si trova solo sul mio disco. Nessuna domanda sulla stessa politica di origine – sachinjain024

risposta

Problemi correlati