Использование easyXDM для связи между родительским документом и дочерним iframe, загруженным из другого домена (amazon)

Я пытаюсь использовать easyXDM для связи между родительским документом и дочерним iframe (загруженным из другого домена - amazon). Iframe src является URL-адресом со знаком oauth и имеет следующий код для связи с родительским документом, который его загружает:

socket = new easyXDM.Socket({
    remote: "http://localhost:56789/hitch.html", /* parent document */
    remoteHelper: "http://localhost:56789/easyXDM/name.html",
    onMessage: function(message, origin){
        alert("Received '" + message + "' from '" + origin + "'");
    },
    onReady: function() {
        socket.postMessage("Yay, it works!");
    }
});

приведенный выше код хранится в заголовке документа.

В родительском (hitch.html):

var transport = new easyXDM.Socket(/** The configuration */{
    local: "/easyXDM/name.html",
    swf: "/easyXDM/easyxdm.swf",
    onMessage: function(message, origin){
       transport.postMessage("This is a message received from " + location);
    }
});

Когда я загружаю дочерний iframe из amazonS3 внутри родительского документа, easyXDM создает еще один iframe внутри дочернего iframe с src, установленным в "http://localhost:56789/hitch.html? Xdm_e=..." . Это заставляет все это повторяться в цикле - родитель снова пытается загрузить дочерний iframe и так далее.

Я тестирую на Firefox 9.0, который имеет поддержку postMessage. Фактические сообщения отправляются правильно, и я вижу окна сообщений. Кроме этого, он также выдает ошибку "url is undefined или empty" в родительском документе при инициализации easyXDM.socket, но это, похоже, не влияет ни на что другое...

Спасибо,

1 ответ

Решение

Я думаю, что вы только что получили логику в обратном направлении. Документация говорит довольно четко:

"При использовании easyXDM вы сначала загружаете потребительский документ, а затем позволяете easyXDM загружать провайдера".

"Потребитель" является родительским документом, а easyxdm загружает "провайдера", который является дочерним iframe.

ref - https://github.com/oyvindkinsey/easyXDM

Другие вопросы по тегам