2011-08-10 39 views
38

Có cách nào để có được chiều cao hiển thị của toàn bộ trang từ bên trong một số iframe, $(window).height() cho tôi chiều cao iframe không?

+3

Ý bạn là gì theo "chiều cao hiển thị"? '$ (window) .height()' cho bạn chiều cao của khung nhìn. – lonesomeday

+2

$ (cửa sổ) .height() hoạt động tốt hơn vì nó là trình duyệt chéo. Tức là, câu trả lời của bạn tốt hơn :). –

+0

Tôi cần chiều cao có thể nhìn thấy của trình duyệt chứ không phải chiều cao của tài liệu. Tôi có một 'iframe' chiều cao được đặt là 3500px, và nếu tôi cố gắng để có được' $ (cửa sổ) .height(); 'nó chỉ mang lại cho tôi 3500px; –

Trả lời

43

Nếu bạn đang sử dụng khung, bạn có thể lấy chiều cao của cửa sổ ngoài cùng bằng cách sử dụng window.top trong hàm tạo jQuery. Chiều cao của window.top sẽ nhận được chiều cao của cửa sổ trình duyệt.

$(window.top).height(); 

Chỉnh sửa: Cập nhật window.top khi Mozilla di chuyển tài liệu của họ xung quanh.

+0

Cảm ơn tuyệt vời !:-D –

+5

Lưu ý - điều này sẽ không hoạt động nếu các khung hình trong hai Các miền khác nhau, chẳng hạn như với các ứng dụng Facebook –

+0

Cũng không có vẻ hoạt động trong jsFiddle khi chạy 'window.top.innerWidth' trong khung' result' trong bảng điều khiển công cụ dành cho nhà phát triển chrome: 'Uncaught DOMException: Chặn một khung có nguồn gốc" https://fiddle.jshell.net "truy cập vào khung hình bắt nguồn chéo. Tôi cho rằng cửa sổ' top' nằm ở miền 'https: // jsfiddle.net'. – user1063287

21

Tôi đã luôn luôn sử dụng này implementation

window.innerHeight or document.body.clientHeight or document.documentElement.­clientHeight tùy thuộc vào trình duyệt.

Nhưng tôi không thấy lý do tại sao jquery $ (cửa sổ) .height() sẽ không hoạt động cho chiều cao hiển thị của bạn?

+1

Đó là vì tôi sử dụng nó trong 'iFrame' trên Ứng dụng Facebook. 'IFrame'it tự nếu chiều cao 3500px, nhưng tôi chỉ muốn biết chiều cao cửa sổ người dùng. –

+0

Không có tác phẩm nào trong số đó. Nó cho tôi chiều cao của 'iFrame' chứ không phải chiều cao của khu vực hiển thị của trình duyệt. –

+0

vì bạn đang ở trong iframe. đối tượng cửa sổ sẽ chỉ tham chiếu trang của bạn. trang mẹ sẽ có một đối tượng cửa sổ khác. Và tôi nghĩ rằng vấn đề miền chéo sẽ ngăn cản bạn từ acessing dữ liệu: (Phải có một cách facebook cho u tổng chiều cao không? – MarutiB

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