我尝试寻找类似的帖子但找不到任何内容,因此发布此查询以获取帮助。基本上,我在GWT端创建了自定义UI。现在,我想将在GWT端发生的事件发送到javascript / jsp页面。为此,我想知道是否有一种方法可以让jsp / javascript在GWT代码中注册一个方法,并且无论何时,任何事件都发生在GWT端,GWT java代码可以简单地调用这个javascript方法(就像一个函数指针/对象),并在jsp页面通知信息。虽然我可以直接从GWT代码中调用javascript方法,但这意味着GWT代码也需要知道javascript方法名称,这会导致紧密耦合。相反,javascript可以简单地将函数的句柄传递给GWT代码,这只是调用此句柄来传递jsp / javascript代码上的必要事件。任何想法都会非常有用。
答案 0 :(得分:0)
您可以使用Dictionary
将函数名称传递给您的应用程序。
在JSP主页中:
<script type="text/javascript">
function myFunction() {
// Do stuff...
}
var MyDictionary = {
myCallback = "myFunction"
};
</script>
在您的申请中:
public void onEvent(EventType event) {
Dictionary d = Dictionary.getDictionary("MyDictionary");
invokeNativeCallback(d.get("myCallback"));
}
private native void invokeNativeCallback(String callbackName) /*-{
if (typeof $wnd[callbackName] === "function") {
$wnd[callbackName]();
}
}-*/;