È possibile utilizzare e.originalEvent.origin
per identificare l'iframe.
sul bambino iframe:
window.parent.postMessage({
'msg': 'works!'
}, "*");
sul genitore iframe:
Javascript
window.addEventListener('message', function(e) {
console.log(e.origin); // outputs "http://www.example.com/"
console.log(e.data.msg); // outputs "works!"
if (e.origin === 'https://example1.com') {
// do something
} else if (e.origin === 'https://example2.com'){
// do something else
}
}, false);
jQuery
$(window).on('message', function(e) {
...
}, false);
Così origin
contiene il protocollo e il dominio da cui il postMessage()
è stato licenziato dalla. Non include l'URI. Questa tecnica presuppone che tutti gli iframe abbiano un dominio univoco.
fonte
2015-12-02 05:09:50
non credo che sia possibile. La finestra può ricevere eventi 'message' da qualsiasi luogo. Se hai una soluzione, probabilmente è ok. –
Solo per motivi di curiosità, come fai a risolvere il tuo problema? – zer00ne