iframe 内のコンテンツの hight が動的に変化するようなコンテンツを複数の異なるサイトに提供することを考えています。
iframe 内のコンテンツの高さの変化に合わせて、iframeの高さを変更したいのですが、可能でしょうか?
異なるサイトで、フレームを越えるアクセスはセキュリティ的に禁止されているようですが、なにか手段があれば教えてください。
iframe の高さは JavaScript で変更出来ればと考えています。
宜しくお願いします。
一応、こういうのがあります。
http://www.atmarkit.co.jp/fdotnet/arcjournal/arcjournal12_03/arc...
大元のページにiframeを埋め込む際、大元のサイト識別用にiframeのURLにキーを埋め込みます。
こちらは呼び出されたURL中のサイト識別キーを元に、こちらのiframe用ページに提供先サイトの通信用iframeを埋め込みます。
通信用iframe中では定期的に自身のURLを確認させ、URLが変化したら親の親の関数を呼び出します。
こちらのifameは高さを変更する際、ハッシュ部に高さを埋め込み、通信用iframeのurlにセットします。
すると、監視している元サイトの通信用iframeから大元サイトの高さ変更用関数が呼ばれるという仕組みです。
上記記事では間に別サイトが入っていてもアクセスできるという事です。ただ、ブラウザ依存はあるかもしれません。
その場合でも、直接関数を呼ばず、クッキーを監視しておけばクッキー経由でデータを渡すことは可能なはずです。
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内のコンテンツで通信する手段があればいいんですけどね。
一応、こういうのがあります。
http://www.atmarkit.co.jp/fdotnet/arcjournal/arcjournal12_03/arc...
大元のページにiframeを埋め込む際、大元のサイト識別用にiframeのURLにキーを埋め込みます。
こちらは呼び出されたURL中のサイト識別キーを元に、こちらのiframe用ページに提供先サイトの通信用iframeを埋め込みます。
通信用iframe中では定期的に自身のURLを確認させ、URLが変化したら親の親の関数を呼び出します。
こちらのifameは高さを変更する際、ハッシュ部に高さを埋め込み、通信用iframeのurlにセットします。
すると、監視している元サイトの通信用iframeから大元サイトの高さ変更用関数が呼ばれるという仕組みです。
上記記事では間に別サイトが入っていてもアクセスできるという事です。ただ、ブラウザ依存はあるかもしれません。
その場合でも、直接関数を呼ばず、クッキーを監視しておけばクッキー経由でデータを渡すことは可能なはずです。
これはすごい。こんな技があたっとは。参考になります。ありがとうございました!!
これはすごい。こんな技があたっとは。参考になります。ありがとうございました!!