Посмотрите на JsInterop.В настоящее время это лучший и самый простой способ взаимодействия между Java и JavaScript в GWT.
http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJsInterop.html
Кроме того, существуют ограничения безопасности, когда Iframe загружается из другого домена / порта.
Вызов функции родительского окна из iframe
РЕДАКТИРОВАТЬ: Попробуйте это:
@JsType(name = "Foo", namespace = JsPackage.GLOBAL)
public class Foo {
@JsFunction
public interface Callback {
public abstract void onCallback(String msg);
}
public void test(Callback callback) {
GWT.log("Message from Java");
callback.onCallback("Massage passed from Java");
}
}
И вызовите это по:
var foo = new $wnd.Foo();
foo.test(function(msg) {
console.log("Message from JavaScript");
console.log("Received: " + msg);
});
И самое главное, что он скрыт в документах, вам нужно добавить эту опцию для компиляции и параметров режима superdev.
-generateJsInteropExports