comunicação iframe entre domínios

Se você precisa enviar dados de e para iFrames, existem vários métodos diferentes, no entanto, muitos deles estão desatualizados ou apenas muito complicados. Por que não usar postMessage:

//on the sending end, within iframe
var domain = document.referrer;
postMessage
(window.frameElement, 'http://'+domain);

//on the receiving end, the parent page
window
.addEventListener('message',function(){
event.source.postMessage('{"somedata":"value", "ohmoredata":"value"}', event.origin);
},false);

Você pode enviar um objeto json para frente e para trás para enviar facilmente mais do que apenas dados com quantidade limitada de chamadas para cada iframe.

Além disso, usando event.source e event.origin, você não precisa codificar permanentemente os valores de domínio para cada mensagem, fazendo com que o código seja reutilizado em vários domínios.