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

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

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!");
    }
});

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

В parent (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 or empty" в родительском документе при инициализации easyXDM.socket, но, похоже, не влияет ни на что другое ...

Спасибо,

1 Ответ

8 голосов
/ 29 октября 2012

Я думаю, у вас просто логика задом наперед.В документации достаточно ясно сказано:

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

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

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

...