2012-01-19 10 views
0

これは簡単な質問であるようですが、どこでも解決策を見つけることができないようです。Iframeをページの一番下まで埋めるようにしてください

ウェブサイトでは、高さ43pxのページの上部にナビゲーションバーがあり、個々のページごとに編集する必要はありません。これは、iframeを置くことですその下に100%幅で、iframeのソースをターゲットとするナビゲーションボタンがあります。

ここで私が問題に遭遇するのは、iframeをiframeにすることができないように、ナビゲーションバーの一番下からページの最下部までiframeを拡張したいのですが、高さを100に設定するとそれはページ全体の高さに設定され、下部の余分な43pxを補うために2番目のスクロールバーを追加するので、どのようにiframeをnav barの下の残りのスペースに合わせることができますか?

私は異なる%を設定しようとしましたが、それは異なる解像度のモニタでは機能しません。そして、私はこれをクロスブラウザー(IE、Chrome、Safari、Mozilla、好ましくはOperaでも動作させる必要がありますが、これは必須ではありません)が必要です。

ごめんなさい。

+1

おめでとうございますが、最長のラン・オン・センテンスで賞を受賞しました。 – j08691

+0

はい、私は笑を知っています。私は他にやるべきことがあったので、やっと急ぎました。私のためにそれを編集してくれたZulkhaery Basrulに感謝します。 –

答えて

0

かなり簡単です。現在のビューポートの高さからナビゲーションの高さを引いてiframeの高さに設定するだけです。

function ResizeIFrame() { 
    var nNavigationHeight = 43; // Assuming the 43px you stated above 
    var nViewHeight = document.body.clientHeight; 
    var nIframeHeight = nViewHeight - nNavigationHeight; 
    document.getElementById("YourIFrameID").style.height = nIframeHeight + "px"; 
} 

身体とhtmlを100%の高さに設定する必要があります。

body, html { 
    height: 100%; 
} 

私は、これはあなたが何をしたい達成するためのやや怪しげな方法であることを言及する必要がありますが、それはあなたの質問の手紙に真のソリューションです。クロスブラウザの頭痛が最小限に抑えられるように、バニラのJavascriptではなくJqueryを使用することをお勧めします(IE 7の現在のインストールでこのコードをテストしました。& 8、FF、Chrome、Safariは問題なしですが、異なる場合があります)。あなたがそのルートに行くことを決めるなら、divを使って優れたシンプルなAJAX機能を利用し、iframe全体を使用しない方がよいでしょう。

+0

ありがとうございますが、私はそれを動作させることができませんでした。どうすれば私のページにそれを適用する必要がありますか?ちょうど頭の中にiframe IDを入力するか、Iframe自体に何かを適用する必要がありますか?申し訳ありませんが私はあまりにもスクリプトの習慣ではない...違いが生じた場合、これは私のページですhttp://astoriaband.webs.com/index.html –

+0

あなたのページは問題ありませんが、あなたは決してサイズ変更メソッドを呼び出すことはありません。最も簡単な方法は、bodyタグをに変更して、ページのすべてのコンテンツの読み込みが完了したらメソッドを呼び出す方法です。これにはiframeにロードされたものがすべて含まれていることに注意してください。 – PoxBlossom

+0

関数を呼び出しても変更されませんでしたが、私はちょうどそれを試して、個々のページを編集してみます。 –

関連する問題