Html5 - Cross Browser Iframe postmessage - от ребенка к родительскому?

Я слежу за этим учебным пособием - http://www.youtube.com/watch?v=R2hOvZ7bwXU, в котором в основном объясняется, как использовать postmessage для безопасного передачи сообщения между iframe и родителем - вы в основном оказываетесь с чем-то вроде этого - http://html5demos.com/postmessage2

Моя проблема в том, что мне нужно, чтобы она работала обратным образом (от дочернего к родительскому) и не знала, как настроить таргетинг на родительское окно.

это мой код приемника (у родителя) -

function handlingMsg(e)
{alert("works")
    if(e.origin == "http://uc.dialogue.net")
        {
                var blah = e.data;
                alert(blah);    
        }
        else{alert("error");}
}
addEventListener("message",handlingMsg, true);

и это функция отправителя, которая запускается простой формой (в дочернем) -

   var text=$('.srchInput').val();
   window.parent.postMessage(text, "http://uc.dialogue.net");   

Должен ли я нацеливаться на родителя по-другому?

Приветствия Пол

Ответ 1

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

// Listen to message from child window
eventer(messageEvent,function(e) {
    var key = e.message ? "message" : "data";
    var data = e[key];
    //run function//
},false);

Чтобы работать с указанным выше на родительской странице и на дочерней странице -

parent.postMessage("loadMyOrders","*");  //  `*` on any domain         

Код скопирован из здесь.

Ответ 2

Современная упрощенная версия принятого ответа (от которой устарела поддержка ie8 в пользу краткости):

window.addEventListener('message',function(e) {
    var key = e.message ? 'message' : 'data';
    var data = e[key];
    //run function//
},false);

Посмотри пожалуйста: