電子書籍の厳選無料作品が豊富!

いつもお世話になっております。IFrameの高さについて、教えてください。
IFrameの高さを、その内部に読み込むページの高さに自動的に合わせたいのですが、上手くいきません。
色々調査して、
<iframe src="http://xxx.yyy.com/" onload="this.style.height=this.contentWindow.document.body.scrollHeight;" width="100%" frameborder=0></iframe>
等を試しましたが、IE7ではアクセス拒否のエラーが出ます。
同じディレクトリのhtmlを指定するとうまくいくようですが、http://で指定されるurlを指定するとどうしてもうまくいきません。
このようなことは不可能でしょうか?よろしくい願いします。

A 回答 (3件)

セキュリティ上の制限でIE以外でもそうなります。


ブラウザの設定を変える事でしか解決しません。
(ブラウザによっては設定も不能)
なので、外部ページを表示させる場合は自動調節は不可能です。
    • good
    • 0
この回答へのお礼

ありがとうございます。webで検索すると同じ様な質問がいくつもあるのですがいずれも明確な回答がありませんでした。「自動調節不可能」ですっきりしました。frameにするかクライアントの高さなどに固定します。

お礼日時:2008/09/08 10:59

No.2 です。



>同じサイト(ディレクトリ)にあるpageは私の方法でもうまく行きます。
失礼しました。勉強不足でした。

contentWindow

こんな便利なプロパティがあるとは知りませんでした。使ってみたいと思います。
ちなみに firefox,safari,operaなどでも問題なく使用できるのでしょうか?
ちょっとgoogleで検索してみたところ、firefox1.5の場合は若干注意が必要みたいですが..

http://wiki.bit-hive.com/tomizoo/pgdiff/?pg=Java …

逆に質問して恐縮ですがご存知でしたらご教授いただけますでしょうか。

この回答への補足

よくわかりません。試してみては

補足日時:2008/09/21 06:19
    • good
    • 0

読み込むhtmlが自分の作成したものであることが前提になりますが、こんな感じでどうでしょう?


親側からのコントロールは無理そうな気がします。。

親:ajdust_frame01.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style>
iframe {
border: solid 1px silver;
}
</style>
</head>
<body>
<iframe id="ifm" src="adjust_frame02.html"></iframe>
</body>
</html>

子:ajdust_frame02.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
html,body{
margin:0;
border:none;
}
</style>
<script>
window.onload=function(){
parent.window.document.getElementById('ifm').style.height=document.body.clientHeight;
}
</script>
</head>
<body>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
test<br/>
</body>
</html>

イントラ系の業務アプリを作るとき良く使います。ただ自宅のFirefox3で試したら警告らしきものがでたような気がしましたが。。
IE6では普通に動きます。
    • good
    • 0
この回答へのお礼

コードの例示をありがとうございます。同じサイト(ディレクトリ)にあるpageは私の方法でもうまく行きます。

お礼日時:2008/09/08 11:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!