GWT中的JSNI动态函数引用 [英] JSNI dynamic function reference in GWT

查看:89
本文介绍了GWT中的JSNI动态函数引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从gwt调用任意的js函数。函数名称将在函数名变量内。例如:

pre $私有静态本地字符串执行字符串函数名,JavaScriptObject数据/ * - {
return $ wnd.functionName(数据);
} - * /;

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

pre $ private static native String执行(JavaScriptObject fn,JavaScriptObject数据)/ * - {
return fn(data );
} - * /;


解决方案

如果您需要通过名称调用函数,则需要这样做:



pre $ private static native String execute(String functionName,JavaScriptObject data)/ * - {
$ WND [functionName](数据);

} - * /;

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

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

} - * /;


I would like to call arbitrary js function from gwt. Function name would be inside functionname variable. Something like this:

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

I assume that something like this could be possible, but how to create fn variable to represent my arbitrary functionname function.

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

解决方案

If you need to invoke function by name, you need to do something like this:

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

}-*/;

To get reference to a function you will need to use JSNI like this:

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

}-*/;

这篇关于GWT中的JSNI动态函数引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆