在GWT中注册Javascript方法不起作用

在GWT中注册Javascript方法不起作用,java,javascript,gwt,applet,jsni,Java,Javascript,Gwt,Applet,Jsni,我正在尝试在GWT中注册一个javascript方法,稍后java小程序可以调用该方法。当我从applet调用javascript警报函数时,它正在按预期工作。然而,当我尝试调用我的方法时,我收到“没有这样的方法”…“在JavaScript对象上” 小程序代码: public class MyApplet extends JApplet { JSObject window; public void init() { window = JSObject.getW


我正在尝试在GWT中注册一个javascript方法,稍后java小程序可以调用该方法。当我从applet调用javascript警报函数时,它正在按预期工作。然而,当我尝试调用我的方法时,我收到“没有这样的方法”…“在JavaScript对象上”
小程序代码:

public class MyApplet extends JApplet {

    JSObject window;
    public void init() {
        window = JSObject.getWindow(this);
        ...
    }

    public void sendMessageToGwt(String message) {
            window.call("sendMessageToGwt", new Object[] { message });
    }
}
GWT类别:

public class AppletWrapper {

    public AppletWrapper() {

        registerMethodsForApplet();
    }
    public  native void registerMethodsForApplet() /*-{
        var tmp=function(message){
           alert(message);  
        }; 

        $wnd.sendMessageToGwt=tmp;  

    }-*/;
}

您是否可以在不创建
tmp
变量的情况下重试,例如
$wnd.sendMessageToGwt=function(message){alert(message);}
MyApplet#sendmagestogwt
必须在调用
AppletWrapper#registerMethodsForApplet
后调用,我已经尝试过,但没有创建
tmp
变量-效果相同。在调用该方法之前,我还确保该方法已注册。它是否在
iframe
中运行?尝试Windows的父级。我也尝试过这个。以及框架和每个框架,以及窗口的文档成员