Apabila memaparkan kandungan daripada domain luaran dalam iFrames , dasar asal yang sama menimbulkan cabaran dalam mengubah saiz iFrames tersebut secara dinamik untuk menampung kandungan.
Satu teknik untuk memintas sekatan merentas domain melibatkan mengeksploitasi keanehan penyemak imbas yang membenarkan komunikasi antara halaman dalam struktur iFrame bersarang. Pada dasarnya:
Ini struktur membenarkan komunikasi antara:
Dalam www.foo.com/home.html:
<script> function resizeIframe(height) { document.getElementById("frame_name_here").height = parseInt(height) + 60; } </script> <iframe>
Dalam www. bar.com/framed.html:
<body onload="iframeResizePipe()"> <iframe>
Dalam 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>
Penyelesaian ini melibatkan komunikasi melalui iframe "helper" (www.foo.com/helper.html) yang berada pada domain yang sama dengan halaman induk dan memudahkan permintaan saiz semula antara iFrames anak dan ibu bapa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Saiz iFrame Secara Dinamik Berdasarkan Kandungan Merentas Domainnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!