iframe のコンテンツ提供元と異なるサイトにそのiframeを埋め込む際の質問です。


iframe 内のコンテンツの hight が動的に変化するようなコンテンツを複数の異なるサイトに提供することを考えています。

iframe 内のコンテンツの高さの変化に合わせて、iframeの高さを変更したいのですが、可能でしょうか?

異なるサイトで、フレームを越えるアクセスはセキュリティ的に禁止されているようですが、なにか手段があれば教えてください。
iframe の高さは JavaScript で変更出来ればと考えています。

宜しくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/03/19 05:31:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:TransFreeBSD No.2

回答回数668ベストアンサー獲得回数268

ポイント35pt

一応、こういうのがあります。

http://www.atmarkit.co.jp/fdotnet/arcjournal/arcjournal12_03/arc...

大元のページにiframeを埋め込む際、大元のサイト識別用にiframeのURLにキーを埋め込みます。

こちらは呼び出されたURL中のサイト識別キーを元に、こちらのiframe用ページに提供先サイトの通信用iframeを埋め込みます。

通信用iframe中では定期的に自身のURLを確認させ、URLが変化したら親の親の関数を呼び出します。

こちらのifameは高さを変更する際、ハッシュ部に高さを埋め込み、通信用iframeのurlにセットします。

すると、監視している元サイトの通信用iframeから大元サイトの高さ変更用関数が呼ばれるという仕組みです。

上記記事では間に別サイトが入っていてもアクセスできるという事です。ただ、ブラウザ依存はあるかもしれません。

その場合でも、直接関数を呼ばず、クッキーを監視しておけばクッキー経由でデータを渡すことは可能なはずです。

id:norisuke3

これはすごい。こんな技があたっとは。参考になります。ありがとうございました!!

2011/03/19 05:27:54

その他の回答1件)

id:deflation No.1

回答回数1036ベストアンサー獲得回数126

ポイント35pt

JavaScriptでiframeの高さを変えるのは以下のように変数heightの値を変更すればできるのですが、iframeに表示するコンテンツの高さを取得する方法がありません。

<html lang="ja">
<head>
<script type="text/javascript">
<!--
function hoge() {
    var height = 300;
    document.getElementById('hogehoge').innerHTML = '<iframe id="hogehoge" src="http://hogehoge.com/" width="200" height="' + height + '"></iframe>';
}
-->
</script>
</head>
<body onLoad="hoge()">
<span id="hogehoge"></span>
</body>
</html>
id:norisuke3

回答有難うございます。

そうですね。サイトの異なるメインコンテンツとiframe内のコンテンツで通信する手段があればいいんですけどね。

2011/03/19 03:43:50
id:TransFreeBSD No.2

回答回数668ベストアンサー獲得回数268ここでベストアンサー

ポイント35pt

一応、こういうのがあります。

http://www.atmarkit.co.jp/fdotnet/arcjournal/arcjournal12_03/arc...

大元のページにiframeを埋め込む際、大元のサイト識別用にiframeのURLにキーを埋め込みます。

こちらは呼び出されたURL中のサイト識別キーを元に、こちらのiframe用ページに提供先サイトの通信用iframeを埋め込みます。

通信用iframe中では定期的に自身のURLを確認させ、URLが変化したら親の親の関数を呼び出します。

こちらのifameは高さを変更する際、ハッシュ部に高さを埋め込み、通信用iframeのurlにセットします。

すると、監視している元サイトの通信用iframeから大元サイトの高さ変更用関数が呼ばれるという仕組みです。

上記記事では間に別サイトが入っていてもアクセスできるという事です。ただ、ブラウザ依存はあるかもしれません。

その場合でも、直接関数を呼ばず、クッキーを監視しておけばクッキー経由でデータを渡すことは可能なはずです。

id:norisuke3

これはすごい。こんな技があたっとは。参考になります。ありがとうございました!!

2011/03/19 05:27:54

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

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

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

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

回答リクエストを送信したユーザーはいません