Are you ready for TECH INFO?
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>
無駄に時間を浪費してしまいました。
ああ。
| 月 | 火 | 水 | 木 | 金 | 土 | 日 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | |||||