iframe の中のHTMLの長さに追従して、iframe の大きさを変更することは可能なのでしょうか? javascript で可能だという話をききました。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/04/13 16:31:54
  • 終了:2010/04/14 13:49:33

回答(2件)

id:Mars No.1

Mars回答回数203ベストアンサー獲得回数202010/04/13 19:38:58

ポイント35pt

こんな感じでしょうか。

・フレームの中身・高さが動的に変わるページ、文字サイズを変更された場合には未対応

・フレームの中身が別ドメインのページには対応不可能

<script type="text/javascript">
function sample(IFR){
	IFR.contentWindow.document.body.style.overflow='hidden';
	IFR.setAttribute('height',1);
	IFR.setAttribute('height',IFR.contentWindow.document.body.scrollHeight);
};
</script>

<iframe src="sample.html" id="IFR" onload="sample(this)"></iframe>

http://www.google.com/search?q=iframe+%8D%82%82%B3%82%C9%8D%87%8...

id:kaiketsu

こういった手法があるんですね。

2010/04/14 13:49:26
id:edvakf No.2

edvakf回答回数27ベストアンサー獲得回数122010/04/14 02:35:17

ポイント35pt

iframe の中が、自分で自由にスクリプトを書いたりできるコンテンツでない限り、無理です。

自由にスクリプトを置ける場合、iframe の中と外で postMessage を使ってやりとりすることができます。

外。

iframe.contentWindow.onmessage = function(e) {
  var size = e.data.split(',');
  iframe.width = size[0];
  iframe.height = size[1];
}

中。

window.parent.postMessage(
  document.documentElement.scrollWidth + ',' + 
  document.documentElement.scrollHeight
);

という具合で。

document.documentElement.scrollHeight を使うか document.body.scrollHeight を使うかは標準モードか互換モードかによって代わります。http://www.albert2005.co.jp/study/javascript/miscellaneous.html#...

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません