人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

宜しくお願いします。

●質問者: norisuke3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript アクセス コンテンツ サイト セキュリティ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● deflation
●35ポイント

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>
◎質問者からの返答

回答有難うございます。

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


2 ● TransFreeBSD
●35ポイント ベストアンサー

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

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

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

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

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

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

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

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ