Я только что получил удовольствие от общения от одного iframe к другому, используя postMessage html5.
Однако проблема, с которой я сталкиваюсь, заключается в том, что я запускаю приложение GWT, которое загружает iframe (с внешним доменом). Теперь из этого внешнего домена я хочу отправить сообщение обратно в приложение GWT. Наивно я сначала попробовал:
parent.postMessage('hello', '*');
из внешнего скрипта, прослушивая события сообщений в моем приложении GWT. Это не работает, потому что javascript GWT запускается в iframe.
То, как я это сделал, это сделать:
document.getElementById(myGwtModuleName).postMessage('hello', '*');
Здорово, что это работает, но что, если я решу изменить имя моего модуля Gwt? Весь процесс сломался бы, и через год, вероятно, пришлось бы долго ломать голову, чтобы понять, почему...
Есть ли лучший способ отправить сообщение обратно в приложение GWT? Или, в качестве альтернативы, как я могу выяснить, какое имя модуля Gwt во время выполнения? В этом случае я мог бы передать его как параметр iframe.
Спасибо за любую помощь!