2012-04-13 8 views
1

そのiframe内で新しいリンクにアクセスするたびにiframeのサイズを変更したいと考えています。javascript iframeごとにサイズを変更する

私はワードプレスのブログを持っており、このiframeを使ってページにフォーラムを追加しました。私はそのブログのリンクをクリックするたびにサイズを変更したい。

私はグーグルではありますが、関連するものは何も見つかりませんでした。

これは私が

<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

。 ..それは意図されていますか? – Tejs

答えて

0

私は知らないが、私はあなたが1つのonclickを追加することができると考えて、私は専門家ではないんだけど、それはIFRAMEを一度だけロードされたことだろうか?... extrange ...

onloadではなくsizeIframe関数を起動するために、ブログのすべてのリンクに機能します。あなたはjqueryのラッピングなしでドキュメントオブジェクト自体にjqueryの `height`メソッドを呼び出ししようとしているように見えます。例えば

(このコードはテストしていないアイデアです)...

<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

+0

iFrame Wrapperと呼ばれるWordpressのプラグインが見つかりました。このプラグインは完全なサイズ変更を行いますが、別の問題が発生しました。 iframeのサイズを変更すると、ページが更新されるまでそのサイズになります。 1番目のページに500ピクセルを表示する必要があるとします。 2番目に1000pxが必要です。このプラグインはiframeのサイズを1000pxの高さに変更しますが、最初のページをもう一度クリックしても1000pxのままです。 – tzortzik

+0

Uhm ...このiframeクラスの高さを(window.innerHeight - mainContentHeight)に設定するとmainContentHeightは他の表示レイヤーの高さですか? ... oオフセット高さ:iframe_height = window.innerHeight - $(#iframe_layer).offsetHeight ... ? それがあなたに役立つことを願っています – Luis

関連する問題