Heim >Web-Frontend >js-Tutorial >Wie kann ich die Größe eines iFrames basierend auf seinem domänenübergreifenden Inhalt dynamisch ändern?
Beim Anzeigen von Inhalten von externen Domänen in iFrames , stellt die Same-Origin-Richtlinie eine Herausforderung dar, wenn es darum geht, die Größe dieser iFrames dynamisch an ihre Bedürfnisse anzupassen Inhalt.
Eine Technik zur Umgehung der domänenübergreifenden Beschränkung besteht darin, eine Browser-Eigenart auszunutzen, die die Kommunikation zwischen Seiten in verschachtelten iFrame-Strukturen ermöglicht. Im Wesentlichen:
Diese Struktur ermöglicht die Kommunikation zwischen:
In www.foo.com/home.html:
<script> function resizeIframe(height) { document.getElementById("frame_name_here").height = parseInt(height) + 60; } </script> <iframe>
In www. bar.com/framed.html:
<body onload="iframeResizePipe()"> <iframe>
In 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>
Diese Lösung beinhaltet die Kommunikation über einen „Helfer“-Iframe (www.foo.com/helper.html), der sich auf derselben Domain befindet wie der übergeordneten Seite und erleichtert Größenänderungsanfragen zwischen den untergeordneten und übergeordneten iFrames.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe eines iFrames basierend auf seinem domänenübergreifenden Inhalt dynamisch ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!