嘗試調整來自不同領域的 iframe 的大小可能是一項具有挑戰性的任務。雖然使用 easyXDM 作為非 HTML5 相容頁面的有效後備方案,但仍有值得考慮的替代解決方案。
其中一個解答是利用 postMessage。此方法涉及將子頁面的高度傳遞給父頁面,然後父頁面會相應地調整 iframe 的高度。
子頁
<script> function adjust_iframe_height(){ var actual_height = document.getElementById('element_id').scrollHeight; parent.postMessage(actual_height,"*"); //* allows this to post to any parent iframe regardless of domain } </script> <body onload="adjust_iframe_height();"> //call the function above after the content of the child loads </body>
父頁
<script> // Create IE + others compatible event handler var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; // Listen to message from child window eventer(messageEvent,function(e) { console.log('parent received message!: ',e.data); document.getElementById('iframe_id').height = e.data + 'px'; },false); </script>
以上是如何使用 postMessage 調整來自不同網域的 Iframe 的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!