Heim >Web-Frontend >CSS-Tutorial >Wie kann ich mit postMessage die Größe eines Iframes aus einer anderen Domäne ändern?
Versuche, die Größe eines Iframes aus einer anderen Domäne zu ändern, können eine herausfordernde Aufgabe sein. Während die Verwendung von easyXDM als effektiver Fallback für nicht HTML5-kompatible Seiten dient, gibt es alternative Lösungen, die eine Überlegung wert sind.
Eine solche Lösung ist die Verwendung von postMessage. Bei dieser Methode wird die Höhe der untergeordneten Seite an die übergeordnete Seite übergeben, die dann die Höhe des Iframes entsprechend anpasst.
Untergeordnete Seite
<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>
Übergeordnete Seite
<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>
Das obige ist der detaillierte Inhalt vonWie kann ich mit postMessage die Größe eines Iframes aus einer anderen Domäne ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!