我想从gwt调用任意js函数。函数名称将在functionname变量内。像这样:

private static native String execute(String functionName, JavaScriptObject data) /*-{
    return $wnd.functionName(data);
}-*/;


我认为这样的事情是可能的,但是如何创建fn变量来表示我的任意functionname函数。

private static native String execute(JavaScriptObject fn, JavaScriptObject data) /*-{
    return fn(data);
}-*/;

最佳答案

如果需要按名称调用函数,则需要执行以下操作:

private static native String execute(String functionName,JavaScriptObject data)/*-{
     $wnd[functionName](data);

}-*/;


要获得对函数的引用,您将需要使用JSNI,如下所示:

private static native JavaScriptObject getFunction(String functionName)/*-{
    return  $wnd[functionName];

}-*/;

10-05 21:20