La documentation pour postMessage implique que la messagerie inter-domaines est possible. Cependant:Comment puis-je effectuer un post-message inter-domaine?
// When the popup has fully loaded, if not blocked by a popup blocker
Ce n'est pas une note très claire de la façon dont de le faire réellement.
Imaginez deux sites:
- [Parent] hébergé sur
qc-a.nfshost.com
- [enfant] hébergé sur
qc-b.quadhome.com
Dans le parent:
document.addEventListener('message', function(e) {
alert('Parent got (from ' + e.origin + '): ' + e.data);
e.source.postMessage('Round-tripped!', 'http://qc-b.quadhome.com');
}, false);
function go() {
var w = window.open('http://qc-b.quadhome.com', 'test');
/* This doesn't work because same-origin policy prevents knowing when
the opened window is ready. */
w.postMessage('Vain attempt.', 'http://qc-b.quadhome.com');
}
Et, dans le enfant:
document.addEventListener('message', function(e) {
alert('Child got (from ' + e.origin + '): ' + e.data);
}, false);
window.opener.postMessage('Ready!', 'http://qc-a.nfshost.com');
En vain.
Aide?
En bref, je suis un idiot. Remplacé 'document' par' window' et le callback prêt a fonctionné via 'window.opener.postMessage'. Je vous remercie! –
Ca se passe pour le meilleur d'entre nous :) –