GWT中的JSNI动态函数引用

时间:2012-01-24 13:15:25

标签: gwt jsni

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

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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

}-*/;

要获得对函数的引用,您需要使用这样的JSNI:

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

}-*/;