2017-06-11 199 views
3

我从本文档中看到:https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage,将数据正确传递给iframe的方式。但现在我想发送一个答案:从主页上的iframe发送消息

//from main page 
myIframe.contentWindow.postMessage('send me a response', '*'); 
//from iframe of main page 
window.addEventListener("message", receiveMessage, false); 
    function receiveMessage(event){ 
      alert(event.data);//the value of message 
      //now i need to send an answer 'this is a response' 
    } 
} 

如何从iframe发送主页的答案? 我真的需要这个答案。

编辑:

好吧,我发现了所有的解决方案。

回答

2

我会考虑使用easyXDM

EasyXDM WebSite

+0

我宁愿不使用插座的方法,但是,如果我有另外的需要这将是一个很好的解决方案,但在我的情况下,我不能使用这个解决方案。 – User

+0

我明白。所以如果页面和iFrame在同一个域上,麦克斯韦的答案应该能够做到这一点! –

+0

我做了这个 https://github.com/TheInvoker/Duplex-Sandboxed-Iframe-Listener – omega

2

您对全球window.parent访问父窗口。

我相信就像使用这个对象的方法一样简单到postMessage。所以像这样:

var parent = window.parent; 
parent.postMessage("some message"); 

一个完整的例子可以找到here

的要点是window.parent.postMessage()函数采用以下参数:otherWindow.postMessage(message, targetOrigin, [transfer]);

+0

我明白你建议我使用相反的消息,但看在我的回答中,这是'未定义的':但显然它有效 – User