我刚刚发现使用 html5 的 postMessage 从一个 iframe 到另一个 iframe 进行通信的乐趣。
但是,我遇到的问题是我正在运行一个加载 iframe(带有外部域)的 GWT 应用程序。现在,我想从该外部域向 GWT 应用程序发回一条消息。我天真地第一次尝试:
parent.postMessage('hello', '*');
来自外部脚本,同时在我的 GWT 应用程序中侦听消息事件。这不起作用,因为 GWT 的 javascript 在 iframe 中运行。
我让它工作的方式是:
document.getElementById(myGwtModuleName).postMessage('hello', '*');
很好,但如果我决定更改 Gwt 的模块名称怎么办?整个过程会中断,并且在一年内可能需要花费很多时间才能弄清楚为什么......
有没有更好的方法将消息发回 GWT 应用程序?或者,我如何在运行时找出 Gwt 的模块名称是什么?在这种情况下,我可以将它作为参数传递给 iframe。
谢谢你的帮助!