Mensagem entre domínios, identificar o iFrame
eu usopostMessage
para enviar eventos de um iframe para o documento pai. Eu tenho controle sobre os dois lados, mas o conteúdo vem de dois domínios diferentes.
Meu problema simples é que não consigo identificar o iFrame dentro do método de retorno de chamada pai. A implementação é assim:
No iFrame:
parent.postMessage(JSON.stringify({action: "closeView" }),'*');
Na janela principal:
window.addEventListener('message',function(event) {
if(event.origin !== 'https://example.com')
return;
// Parse message back to json
var messageObject = JSON.parse(event.data);
var source = event.source;
/* this is returning: Window -URL- */
console.log( source );
/* This will throw Permission denied, although this code is inside of "parent" */
console.log(source.parentNode);
},false);
Quero identificar um determinado elemento pai do iframe, que está (logicamente) dentro do documento pai.
Quando tento usarevent.source.parentNode
ou algum jQuery no referido objeto, diz o Firefox, não posso fazer isso para impedir o XSS, erro:Error: Permission denied to access property 'parentNode'
Como posso obter o elemento pai do iFrame, que acionou opostMessage
ouvinte de evento?