2009-04-09 25 views
14

Trong khung iFrame, chúng ta cần có chiều cao cửa sổ/tài liệu của cha mẹ.Làm thế nào tôi có thể có chiều cao của cửa sổ mẹ từ bên trong iFrame bằng jQuery?

Có cách nào để sử dụng jQuery không?

Tôi biết chúng tôi có thể sử dụng $ (document) .height() để có chiều cao của trang. Tôi chỉ không thể tìm ra cách để có được giá trị của cha mẹ từ bên trong iFrame.

Vui lòng trợ giúp!

Trả lời

15

jQuery là không cần thiết.

parent.document.body.clientHeight

Điều đó phù hợp với tôi với IE7 và FF3.

+5

Tôi không nghĩ rằng điều này sẽ làm việc với một iframe từ trang web khác - sẽ nó? Không chắc chắn nếu câu hỏi quan tâm tuy nhiên. –

+0

cảm ơn nó hoạt động trong chrome và ff quá – Chetan

+6

Adam là chính xác. Mã này chỉ hoạt động nếu [tên miền giống nhau] (http://stackoverflow.com/questions/13798540/how-to-get-window-size-from-cross-domain-iframe-in-ie). Nếu không, hãy sử dụng postMessage để gửi chiều cao từ cha mẹ đến khung nội tuyến. –

3

Tôi đã thử phương pháp tiếp cận khách hàng trên một trang web nơi cả Iframe ở cùng một tên miền và nó không hoạt động. (trả về 0).

Sau rất nhiều thử nghiệm là cách tốt nhất tôi đã tìm thấy (và tôi sẽ rất vui khi biết một cách tốt hơn) là để tạo ra một chức năng trên cha mẹ mà trả về chiều cao tài liệu, một cái gì đó như:

Phụ huynh:

function getDocumentHeight(){ 
    return $(document).height(); 
} 

khung nội tuyến:

var parentDocHeight = parent.getDocumentHeight(); 
2

po Một ssibility là:

$(window.parent.document).height() 
1

Trong jQuery bạn có thể làm

$(parent.window).width(); 
Các vấn đề liên quan