将变量名称传递给GWT的JSNI

Chr*_*s J 1 javascript java gwt jsni

使用GWT的JavaScript本机接口,我可以执行以下操作:

public native static String getNativeVariableFoo() /*-{
    return $wnd.foo;
}-*/;
Run Code Online (Sandbox Code Playgroud)

这将返回名为foo的JavaScript变量的内容.

如何扩展它以接受变量名作为参数?即:

public native static String getNativeVariable(String foo) /*-{
    /* Somehow meaningfully concat '$wnd.' with value of foo */
}-*/;
Run Code Online (Sandbox Code Playgroud)

只需在本机代码中使用变量名,就像调用一样:

eval(foo)
Run Code Online (Sandbox Code Playgroud)

导致JavaScript搜索名为 foo 的变量的声明,而不是使用foo 命名的变量.

非常感谢!

Ale*_*eid 5

是否

$wnd[foo] 
Run Code Online (Sandbox Code Playgroud)

不行?

您可能还想查看GWT"词典"类.它非常适合加载值,即来自主页的参数.