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 |