Sto cercando di far funzionare un postMessage
esempio banale ...
- in IE10
- tra finestre / schede (rispetto a iframe)
- attraverso le origini
Rimuovi una qualsiasi di queste condizioni e le cose funzionano bene :-)
Ma per quanto ne so, tra le finestre postMessage
sembra funzionare solo in IE10 quando entrambe le finestre condividono un'origine. (Beh, in effetti - e stranamente - il comportamento è leggermente più permissivo di così: anche due origini diverse che condividono un host sembrano funzionare).
È un bug documentato? Eventuali soluzioni alternative o altri consigli?
(Nota: questa domanda tocca i problemi, ma la sua risposta riguarda IE8 e IE9, non 10)
Maggiori dettagli + esempio ...
demo della pagina di avvio
<!DOCTYPE html>
<html>
<script>
window.addEventListener("message", function(e){
console.log("Received message: ", e);
}, false);
</script>
<button onclick="window.open('http://jsbin.com/ameguj/1');">
Open new window
</button>
</html>
ha lanciato la demo della pagina
<!DOCTYPE html>
<html>
<script>
window.opener.postMessage("Ahoy!", "*");
</script>
</html>
Funziona su: http://jsbin.com/ahuzir/1 - perché entrambe le pagine sono ospitate nella stessa origine (jsbin.com). Ma sposta la seconda pagina da qualche altra parte e non funziona in IE10.