9
Dopo una lunga ricerca sembra che questo dovrebbe funzionare, ma in IE8 la funzione di permesso non viene mai chiamata ... alcun aiuto?Perché lo script postMessage non funziona in IE8?
<script type="text/javascript">
function resizeCrossDomainIframe() {
if (window.addEventListener) {
window.addEventListener('message', letsgo, false);
} else if (window.attachEvent) {
window.attachEvent('onmessage', letsgo);
}
}
function letsgo(event) {
var iframe = document.getElementById('my_iframe');
if (event.origin !== 'http://mysite.com') return; // only accept messages from the specified domain
if (isNaN(event.data)) return; // only accept something which can be parsed as a number
var height = parseInt(event.data) + 32; // add some extra height to avoid scrollbar
iframe.height = height + "px";
}
</script>
<iframe src='http://mysite.com/products/default.aspx?iframe=true&partnerid=222&site=localhost:62014' frameborder="0" width="100%" scrolling="auto" style="min-height: 750px; min-width: 600px; background-color: #fff;" id="my_iframe" onload="resizeCrossDomainIframe();">
</iframe>
Hai '' come la prima riga della pagina? – Teemu
Sì, sì ... Suppongo che dovrei aggiungere che funziona perfettamente con FF, Chrome e IE9. Anche la pagina iframe child sta chiamando postMessage in questo modo:
– SirMIt sembra che in ogni codice di esempio su MSDN ci sia ['event.domain'] (http://msdn.microsoft.com/en-us/library/windows/apps/hh441295.aspx) invece di' event.origin', anche se non è la prima volta che si incontrano errori negli esempi di MSDN. – Teemu