问题 从父母到儿童iframe交流交叉起源


我正在努力 第三方Javascript。我对父页面和来自不同来源的子框架之间的通信特别感兴趣。使用window.postMessage,安全地从子进程发送消息并让父进程接收它们是微不足道的。 message 事件。

我没有运气朝另一个方向走。我可以得到一些确认吗  可以使用postMessage从父级传递给孩子吗?如果不是解决这个问题的方法是什么?


3688
2017-09-25 17:46


起源



答案:


你应该可以使用 .postMessage() 在任何两个合作窗口之间。发送消息的方向无关紧要。如果它不是朝一个方向工作,那么实现中可能存在错误。您可能需要确保拥有正确的窗口对象。

对于iframe,您可能希望使用 .contentWindow 在现代浏览器中获取窗口的属性。

这里有一些好的文档: https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage


12
2017-09-25 17:56



你是如此正确。我的实现中有一个错误,我在发布后才看到它。 - Benmj
你有没有机会知道如何获得.contentWindow属性?我的页面中的iframe似乎没有。同样的域名...... - newshorts
这对我来说非常有用。谢谢! - Kon


答案:


你应该可以使用 .postMessage() 在任何两个合作窗口之间。发送消息的方向无关紧要。如果它不是朝一个方向工作,那么实现中可能存在错误。您可能需要确保拥有正确的窗口对象。

对于iframe,您可能希望使用 .contentWindow 在现代浏览器中获取窗口的属性。

这里有一些好的文档: https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage


12
2017-09-25 17:56



你是如此正确。我的实现中有一个错误,我在发布后才看到它。 - Benmj
你有没有机会知道如何获得.contentWindow属性?我的页面中的iframe似乎没有。同样的域名...... - newshorts
这对我来说非常有用。谢谢! - Kon