SPOTブログ

2012/01/25

クロスドメインのiFrameで高さ(height)を自動取得して調整する方法

クロスドメイン(別ドメイン)のhtmlをiframeで読み込んだ場合、セキュリティの都合でiframe内のdomを操作することができません。

同じドメイン内のhtmlをiframeで埋め込む場合なら、DOMでheightを取得して自動で調整することが簡単にできるのですが、クロスドメインの場合は難しいようです。

最初はpostMessageで通信して値を受け渡す方法を試したのですが、IE8以前にはpostMessageが実装されていないため、動作しません。

そこで、見つけたのがこの方法。

cross domain iframe resiziing

このサンプルだと、小サイトではjQueryを使って文字サイズを自動で可変するようになっていて、setIntervalでheightを取得し直すようになっていますが、そのような必要がない場合は

としてあげれば、OKです。

jQueryを読み込む必要も無いです。

他にもっとスマートな方法がアリそうなのですが、いい方法があればぜひ教えてください!