iframeって…

公開日:  最終更新日:2013/11/25

XSS対策らしいのですが、
iframe内から親ウィンドウへ and/or iframe外から内部へ は、
javascript で制御を行う事が出来ない。(但し、同じドメイン内なら可能。)
という仕様になっているらしいです。

そういう訳で、同じドメイン内でテストして動作していたスクリプトが、外部の実動作環境に投入したとたんに動かないという、すばらしい事態に見舞われ、原因がさっぱりつかめずに困ってしまいました。

よくよく考えれば、当然の事なのでしょうし、わからんでも無いのですが、
普段の私のヘロヘロ頭でそんな所まで気がつく訳がありません。
本当に不親切な事に、そういう事情を知らん者から言わせてもらえば、なんで今まで動いていたものが、実動作環境では突然に動かなくなるのか、さっぱりわからないくてあせる事この上ないです。

同ドメイン内でもエラーして欲しいくらいですね。そういう所は。

デバッガでも原因が掴めなくて難儀でした。

こんなスクリプトで、iframe 内部から親を制御しようと思ったんですけどね


<script>
<!--
window.onload = function(){
var parentWindow = window.parent; //親(iframeを内包しているwindow)を取得
var parentDocument = parentWindow.document; //親のdocumentを取得
var parentIframe = parentDocument.getElementById("iframe_id"); //ifame 自身を取得
var inner_height = parentIframe.contentWindow.document.body.offsetHeight; //iframeの中身の高さを取得

parentIframe.style.height = inner_height + 'px'; //ifameの高さを内部に合わせて変更 高さ可変窓の完成...のはずだった。

}
-->
</script>

無駄に時間を浪費してしまいました。
ああ。

PAGE TOP ↑