2012-06-05 19 views
6

Quiero averiguar la posición de un elemento que está en iframe. Estoy tratando uso OT: -Posición de salida del elemento html en 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 }; 
} 

Para obtener la lista de todos los elementos del marco flotante,

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

Pero esto no está funcionando. Inicialmente, elem no es nulo, pero elem.offsetParent es nulo en todos los casos. ¿Estoy haciendo algo mal?

Para algunos elementos, funciona bien. Pero para algunos elementos, offsetParent es nulo y su offsetLeft es 0 y offetTop es 0.

¿Hay alguna otra forma de averiguar la posición de cada elemento?

Gracias de antemano ..

+0

quizá http://stackoverflow.com/questions/306305/what-would-make-offsetparent-null puede ayudar a –

+3

Se puede acceder a un Iframe sólo si se trata de su propio dominio: la Política de Same Origin restringe el acceso al Iframe desde otros dominios. – Christoph

+0

@Christoph Page está solo en mi disco ... Así que no hay dudas sobre la Política de Same Origin – sachinjain024

Respuesta

Cuestiones relacionadas