iFrame 内に外部ドメインのコンテンツを表示する場合、同一オリジン ポリシーでは、それらの iFrame に合わせて iFrame のサイズを動的に変更する際に課題が生じます。 content.
クロスドメイン制限を回避する手法の 1 つは、ネストされた iFrame 構造内のページ間の通信を可能にするブラウザーの癖を悪用することです。本質的には:
これこの構造により、
www.foo.com/home.html 内:
<script> function resizeIframe(height) { document.getElementById("frame_name_here").height = parseInt(height) + 60; } </script> <iframe>
内www.bar.com/framed.html:
<body onload="iframeResizePipe()"> <iframe>
www.foo.com/helper.html:
<body onload="parentIframeResize()"> <script> function parentIframeResize() { var height = getParam("height"); parent.parent.resizeIframe(height); } function getParam(name) { var regex = new RegExp("[\?&]" + name + "=([^&]*)"); var results = regex.exec(window.location.href); if (results == null) return ""; else return results[1]; } </script>
このソリューション親ページと同じドメイン上に存在し、子 iFrame と親 iFrame の間のサイズ変更リクエスト。
以上がクロスドメイン コンテンツに基づいて iFrame のサイズを動的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。