如何在GWT中从JSNI返回JavaScript函数?我尝试了以下方法:

/* JSNI method returning a js-function */
public static native JavaScriptObject native_getFunction() /*-{
    return function(a,b){
        //do some stuff with a,b
    }
}-*/;

将函数存储在变量中
/* outside from GWT: store the function in a variable */
JavaScriptObject myFunction = native_getFunction();

之后使用该函数会产生以下错误消息:
(TypeError): object is not a function

有人知道如何解决这个问题吗?

最佳答案

这对我有用。声明以下方法:

public static native JavaScriptObject native_getFunction() /*-{
    return function(a,b){
        //do some stuff with a,b
    }
}-*/;

private native void invoke(JavaScriptObject func)/*-{
    func("a", "b");
}-*/;

然后,您可以通过以下方式使用这些方法:
JavaScriptObject func = native_getFunction();
invoke(func);

关于javascript - GWT JSNI返回js函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14712014/

10-09 18:02