2014-02-07 209 views
0

存在severalanswers動態調整大小的問題,該iframe一旦加載就不會自動更改大小。不過,我有一個iframe加載一個表單,它根據用戶輸入(即jQuery驗證,PHP驗證,基於輸入打開的div等)向頁面添加高度來更改大小(特別是其高度)。動態調整動態iframe的大小

有沒有辦法改變iframe的大小,即使在加載之後,根據其大小的變化?將滾動添加到iframe看起來很混亂。

+0

你有沒有嘗試'min-height'屬性在CSS? – KarelG

+0

是的,這可能是一個選項。問題是高度可能因不同的瀏覽器和分辨率而不同,所以我更喜歡動態設置的東西。 – Josh

+0

如果存在對此問題的非JS解決方案,它也將是'很好'(但也許不現實)。 – Josh

回答

0

如果在用戶輸入值後刷新頁面,該怎麼辦?

0

您可以設置一個時間間隔,每隔200毫秒檢查幀的內部大小是否在幀的'.contentDocument'屬性中。 d調整幀的大小。

這將是這個樣子:

var targetFrame = document.getElementById("InnerFrame"); 
var targetDocument = (targetFrame.contentWindow.document || targetFrame.contentDocument); 

window.frameInterval = window.setInterval(function(){ 
    targetFrame.height = targetDocument.body.height; 
},200); 

我沒有測試過這一點,因爲的jsfiddle不允許有URL的I幀。 但它可以讓你開始。

+0

我試過這個,它只在iframe中加載一小部分。 – Josh

+0

這可能意味着JavaScript不能正常工作。 我沒有測試過這段代碼,但它可以讓你開始。 我會看看晚飯後我能爲你做些什麼。 –

+0

感謝您的幫助。我在控制檯中看不到任何JS錯誤。 – Josh