現在、以下のような状態で作業を行っています。
A サイト
URL: http://〇〇〇〇〇.com/
私が作業しているわけではなく、他の会社の方が作業している。
検証用のため、SSL の設定は行っていない。
B サイト
URL: http://XXXXX.jp/
こちらは私が作業している。
こちらも検証用のため、SSL の設定は行っていない。
今回行いたいことは、B サイトで作成したページを、A サイトのページの一部に iframe で表示させたいと思っています。
その際、B サイトのページの高さを取得して、A サイト側に渡して iframe の高さを設定することになっています。
B サイト側では以下のようなソースコードになっています。
<!DOCTYPE html> : <body> : : : <script> var h = document.documentElement.scrollHeight; console.log(h); // ここの値がバラバラになる! parent.postMessage(h, "*"); </script> </body> </html>
A サイト側では以下のようなソースコードになっています。
<div> <iframe src="http://XXXXX.jp/iframe/page/" id="frame" frameborder="0"></iframe> </div> : : <script> window.addEventListener('message', function (e) { document.getElementById('frame').height = e.data; }, false); </script>
今回問題になっているのは、A サイトのページを読み込む時、iframe の箇所の B サイトの高さがバラバラになってしまうという点です。
B サイトのページは動的に値が表示されるため、多少の高さのバラつきは想定していて、「 document.documentElement.scrollHeight 」の値は 1700 前後になるのですが、
なぜか「 0 」になったり、「 3000 」になったりして、A サイト側のページでは iframe の部分が表示されなくなったり、余計な空白ができてしまいます。
なお、B サイトのページを直接ブラウザで確認すると、値はバラバラになりません。
色々と検証しましたが、どうしてもバラバラになってしまいます。
どこに原因があるのか、わかる方がいらっしゃいましたら、回答していただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/14 08:24