В iframe:
parent.postMessage(JSON.stringify({key: 'value'}), 'http://адрес-родительского-окна');
Вторым параметром в postMessage можно передать '*' - тогда сообщение будет доступно для всех окон.
Сериализация в JSON первого параметра нужна для поддержки IE ниже не то 8 не то 9 версии, точно не вспомню.
В родительском окне:
function handlerMessage(e){
var data = JSON.parse(e.data);
var origin = e.origin;
if(origin !== 'http://адрес_iframe'){
return false;
}
// здесть можно использовать data как объект.
}
if(window.addEventListener){
window.addEventListener('message', handlerMessage);
} else {
window.attachEvent('message', handlerMessage);
}
Код на 100% рабочий, с боевого проекта.