Междоменный обмен сообщениями iframe с плагином jQuery postMessage

Я пытаюсь установить связь между дочерним iframe и его родителем, используя следующий плагин:

http://benalman.com/projects/jquery-postmessage-plugin/

Я могу последовать примеру и опубликовать сообщение от ребенка к родителю, но не наоборот, и мне действительно нужно иметь возможность общаться в обоих направлениях.

Код родителя выглядит следующим образом:

var origin = document.location.protocol + '//' + document.location.host,
    src = origin + '/Custom/Ui/Baseline/html/iframe-data-cash.htm#' + encodeURIComponent(document.location.href);

$(function () {

    var $holder = $('#iframe'),
        height,
        $iframe = $('');

    // append iframe to DOM
    $holder.append($iframe);

});

$(window).load(function () {
    $.postMessage(
        'hello world',
        src,
        parent.document.getElementById('data-cash-iframe').contentWindow
    );
});

И код потомка выглядит следующим образом:

$(function () {

    var parentURL = decodeURIComponent(document.location.hash.replace(/^#/, ''));

    $.receiveMessage(
        function (e) {
            alert(e.data);
        },
        parentURL
    );

});

Я действительно не понимаю, почему это не работает, и мне отчаянно нужна помощь!

10
задан RyanP13 7 June 2012 в 12:01
поделиться