ivy*_*ike 8 javascript iframe html5 cross-domain
我正在尝试使用easyXDM在父文档和子iframe之间进行通信(从不同的域加载 - 亚马逊).iframe src是一个oeuth签名的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!");
}
});
Run Code Online (Sandbox Code Playgroud)
上面的代码保存在文档的头部.
在父(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);
}
});
Run Code Online (Sandbox Code Playgroud)
当我从父文档中的amazonS3加载子iframe时,easyXDM在子iframe中创建另一个iframe,其中src设置为"http:// localhost:56789/hitch.html?xdm_e = ...".这导致整个事情在一个循环中重复 - 父母再次尝试加载子iframe等等.
我正在测试具有postMessage支持的Firefox 9.0.实际的消息正在正确发送,我可以看到消息框.除此之外,在初始化easyXDM.socket时,它还会在父文档中抛出"url is undefined or empty"错误,但它似乎不会影响其他任何内容......
谢谢,
我认为你只是倒退了逻辑.文档说得非常清楚:
"当使用easyXDM时,首先加载使用者文档,然后让easyXDM加载提供者."
"consumer"是父文档,easyxdm加载"提供者",即子iframe.
ref - https://github.com/oyvindkinsey/easyXDM
| 归档时间: |
|
| 查看次数: |
11909 次 |
| 最近记录: |