2012-06-05 45 views
6

Tôi muốn tìm vị trí của phần tử nằm trong khung nội tuyến. Tôi đang cố gắng sử dụng ot: -Phân tích vị trí của phần tử html trong 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 }; 
} 

Để có được danh sách của tất cả các yếu tố của khung nội tuyến,

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

Nhưng điều này không hoạt động. Ban đầu elem không phải là null nhưng elem.offsetParent là null trong mọi trường hợp. Tôi đang làm một số sai?

Đối với một số yếu tố, nó hoạt động tốt. Nhưng đối với một số yếu tố, offsetParent là đến null và do đó offsetLeft của chúng là 0 và offetTop là 0.

Có cách nào khác để tìm ra vị trí của từng phần tử hay không.

Cảm ơn trước ..

+0

lẽ http://stackoverflow.com/questions/306305/what-would-make-offsetparent-null có thể giúp bạn –

+3

Bạn có thể truy cập Iframe chỉ khi nó là từ của bạn miền riêng - Chính sách gốc tương tự hạn chế quyền truy cập vào Iframe từ các miền khác. – Christoph

+0

@Christoph Page chỉ nằm trên đĩa của tôi ..Không có câu hỏi nào về Chính sách gốc tương tự – sachinjain024

Trả lời

Các vấn đề liên quan