gpt4 book ai didi

javascript - 使用 easyXDM 在父文档和从不同域加载的子 iframe 之间进行通信(亚马逊)

转载 作者:太空狗 更新时间:2023-10-29 13:46:46 25 4
gpt4 key购买 nike

我正在尝试使用 easyXDM 在父文档和子 iframe 之间进行通信(从不同的域加载 - 亚马逊)。 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!");
}
});

以上代码保存在文档的head部分。

在父级(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);
}
});

当我从父文档中的 amazonS3 加载子 iframe 时,easyXDM 在子 iframe 中创建另一个 iframe,并将 src 设置为 "http://localhost:56789/hitch.html?xdm_e=..."。这导致整个事情在一个循环中重复 - 父级再次尝试加载子 iframe 等等。

我正在 Firefox 9.0 上进行测试,它支持 postMessage。实际消息正在正确发送,我可以看到消息框。除此之外,它还会在初始化 easyXDM.socket 时在父文档中抛出“url is undefined or empty”错误,但它似乎不会影响任何其他内容......

谢谢,

最佳答案

我认为您的逻辑倒退了。文档说得很清楚:

"When using easyXDM you first load the consumer document and then let easyXDM load the provider."

“消费者”是父文档,easyxdm 加载“提供者”,即子 iframe。

引用 - https://github.com/oyvindkinsey/easyXDM

关于javascript - 使用 easyXDM 在父文档和从不同域加载的子 iframe 之间进行通信(亚马逊),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com