2011-08-10 8 views
38

iframe 내에서 전체 페이지의 가시 높이를 얻는 방법이 있습니까? $(window).height()iframe의 높이를 제공합니까?

+3

"눈에 보이는 높이"란 무엇입니까? '$ (window) .height()'는 뷰 윈도우의 높이를 나타낸다. – lonesomeday

+2

$ (window) .height()는 브라우저 간 호환이므로 더 잘 작동합니다. 나는 대답한다. :) –

+0

문서의 높이가 아닌 브라우저의 가시 높이가 필요합니다. height가 3500px로 설정된 iframe이 있는데, $ (window) .height();를 얻으려고하면 3500px 만 제공됩니다. –

답변

43

프레임을 사용하는 경우에는 jQuery 생성자에서 window.top을 사용하여 가장 바깥 쪽 창의 높이를 가져올 수 있습니다. window.top의 높이는 브라우저 창의 높이를 가져옵니다.

$(window.top).height(); 

편집 : Mozilla가 자신의 설명서를 이전 한 것처럼 window.top 참조가 업데이트되었습니다.

+0

큰 감사합니다. :-D –

+5

참고 - 프레임이 두 개일 경우에는 작동하지 않습니다. Facebook 개발자와 같은 다른 도메인 –

+0

Chrome 개발자 도구 콘솔의 'result'프레임에서'window.top.innerWidth'를 실행할 때 jsFiddle에서 작동하지 않는 것으로 보입니다 : 'Uncaught DOMException : Origin with frame blocked' https://fiddle.jshell.net "이 교차 원점 프레임에 접근하지 못하도록합니다."최상위 "창이 도메인 https : // jsfiddle.net에 있다고 가정합니다. – user1063287

21

는 나는 항상 브라우저에 따라이 implementation

window.innerHeight or document.body.clientHeight or document.documentElement.­clientHeight을 사용했다.

하지만 jquery의 $ (window) .height()가 눈에 보이는 높이에서 작동하지 않는 이유는 모르겠습니까?

+1

페이스 북 앱의 'iFrame'에서 사용하기 때문입니다. 'iFrame'은 3500 픽셀의 높이이지만, 사용자 윈도우 높이만 알고 싶습니다. –

+0

그 중 어느 것도 작동하지 않습니다. 그것은 나에게 브라우저 영역의 높이가 아닌 'iFrame'의 높이를 제공합니다. –

+0

은 iframe에 있기 때문에 창 개체는 귀하의 페이지만을 참조 할 것입니다. 상위 페이지에는 다른 창 객체가 있습니다. 그리고 나는 교차 도메인 문제로 인해 데이터를 처리하지 못하게 될 것이라고 생각합니다. (페이스 북에서 총 높이를 제공하지 않는 방법이 있어야합니다.) – MarutiB

관련 문제