Client1在窗口中有一个iframe。 Client2通过异步脚本将postMessage()发送到Client1,然后Client1执行某些操作(绕过跨域策略限制)。到目前为止它完美无缺。 现在Client1将postMessage()返回给Client2,以便他(2)可以结束他的等待(因为async.script执行)。
如何完成。
代码段:
客户2
var iframe;
return browser.executeAsyncScript(function (done) {
window.addEventListener("message", receiveMessage);
iframe = document.getElementById("myIframe");
iframe.contentWindow.postMessage("message", "*");
##### HERE COMES HOW TO END WAITING #####
}).then(function () {
});
客户1
script.function setup() {
window.addEventListener("message", receiveMessage);
}
script.function receiveMessage(event) {
if (event.data !== "message")
return;
// done something
event.source.postMessage("message", event.origin); ?????
// sth. like this
}
非常感谢任何提示
答案 0 :(得分:1)
不确定Client2中的receiveMessage
是什么,但由于addEventListener
将执行匹配的所有处理程序,我只是添加另一个事件,如果receiveMessage
与{{1}中的那个不同并且Client1
可供receiveMessage`访问,那么您就不需要我刚刚创建的新事件处理程序。
done