2012-04-13 68 views
1

我想每次在iframe中訪問新鏈接時調整iframe的大小。javascript iframe在每次加載時調整大小

我有一個WordPress博客,我在使用此iframe的頁面上添加了論壇。我希望每次點擊該博客上的鏈接時都調整大小。

我使用Google搜索,但沒有發現任何相關內容。

這是我使用我的大小調整代碼

<script type="text/javascript"> 
function sizeIFrame() { 
var helpFrame = jQuery("#ifm"); 
var innerDoc = (helpFrame.get(0).contentDocument) ? helpFrame.get(0).contentDocument :  helpFrame.get(0).contentWindow.document; 
helpFrame.height(innerDoc.body.scrollHeight + 35); 
} 
</script> 
<iframe id="ifm" src="..." width="100%" frameBorder="0" onload="sizeIFrame();" scrolling="no"></iframe> 

謝謝!

+0

它看起來像你想調用文檔對象本身的jQuery的'height'方法沒有一個jQuery包裝。 ..是這個意圖嗎? – Tejs 2012-04-13 17:58:52

回答

0

我不是專家,但它可能是在iframe只加載一次?... ...交流中心

我不知道,但我認爲,你可以添加一個的onclick函數到博客的每個鏈接來啓動sizeIframe函數而不是onload。

例如(此代碼是一個想法,未測試)...

<a href="#" class="iframe-mgr" id ="link-a"> a link </a> 
<a href="#" class="iframe-mgr" id ="link-b"> b link </a> 

<script type="text/javascript"> 
$('.iframe-mgr').addEventListener('click', function(){ sizeIframe() }); 
</script> 
+0

論壇是phpbb,我可以修改它,但它很複雜。 – tzortzik 2012-04-13 18:38:27

+0

我發現了一個名爲iFrame Wrapper的WordPress插件,它可以完美調整大小,但另一個問題就出現了。 在調整iframe的大小後,它將保持該大小,直到頁面刷新。假設第1'頁面需要顯示500px。第二個需要1000px。這個插件將iframe的大小調整爲1000px高度,但如果再次點擊第一頁,它將仍然是1000px。 – tzortzik 2012-04-13 23:04:17

+0

呃...並且你能設置這個iframe類的高度爲(window.innerHeight - mainContentHeight)是mainContentHeight其他可見圖層的高度嗎? ... o甚至是偏移高度:iframe_height = window.innerHeight - $(#iframe_layer).offsetHeight ... ? 希望它對你有用 – Luis 2012-04-17 14:16:34