2011-08-10 71 views
38

有沒有什麼辦法可以從iframe,$(window).height()得到iframe的高度?

+3

「可見高度」是什麼意思? '$(window).height()'給你視圖窗格的高度。 – lonesomeday

+2

$(window).height()因爲它是跨瀏覽器,效果更好。即,你的答案是更好的:)。 –

+0

我需要瀏覽器可見的高度,而不是文檔的高度。我有一個'iframe',其高度設置爲3500px,如果我嘗試獲取'$(window).height();'它只會給我3500px; –

回答

43

如果您正在使用框架,您可以通過在jQuery構造函數中使用window.top來獲得最外層窗口的高度。 window.top的高度將獲得瀏覽器窗口的高度。

$(window.top).height(); 

編輯:作爲Mozilla的更新window.top引用移動他們的文檔。

+0

非常感謝!:-D –

+5

注意 - 如果幀爲兩個 –

+0

在chrome開發人員工具控制檯的'result'框架內運行'window.top.innerWidth'時,jsFiddle似乎也無法工作:'未捕獲的DOMException:阻止了具有原點的框架「 https://fiddle.jshell.net「來訪問一個跨域框架,我想'top'窗口在域名'https:// jsfiddle.net'。 – user1063287

21

我也取決於瀏覽器總是用這個implementation

window.innerHeight or document.body.clientHeight or document.documentElement.­clientHeight

但我不明白爲什麼jQuery的$(窗口).height()不會爲你的可見高度工作?

+1

這是因爲我在Facebook應用程序的「iFrame」中使用它。如果3500像素的高度,「iFrame」自身,但我只想知道用戶窗口的高度。 –

+0

沒有任何工作。它給了我'iFrame'的高度,而不是瀏覽器可見區域的高度。 –

+0

,因爲您在iframe中。該窗口對象只會引用您的頁面。父頁面將具有不同的窗口對象。我認爲跨域問題會阻止你訪問數據:(。必須有一種方式,Facebook給你的總高度沒有? – MarutiB

相關問題