我在 Javascript 中有一个变量,它分别在全屏模式打开和关闭true
之间切换。false
现在我想在我的GWT
代码中访问该变量,并相应地执行一些操作。谁能告诉我该怎么做?我无法从有关JSNI
...的 Google 文档中理解它
问问题
5592 次
2 回答
7
在 JavaScript 中
var mybool = true;
MyClass 类中的JSNI方法;
public static native boolean getNativeVariableType(String jsVar)/*-{
return eval('$wnd.' + jsVar);
}-*/;
最后在 GWT 中使用;
boolean getFormJs = Myclass.getNativeVariableType("mybool");
正如@dodoot 提出的那样,您可以尝试这样做return !!$wnd[jsVar]
以获得摆脱eval
功能的副作用。
正如@manolo 所说,如果您使用的是gwtQuery,只需编写简单的$(window).prop("mybool")
.
于 2013-01-28T14:17:05.897 回答
7
出于好奇,对于像这样的简单事情,您可以通过利用 gwt 覆盖类中已经存在的某些 jsni 方法来避免编写 jsni 方法。
因此,在您的情况下,您可以获取 window 对象,并将其转换为元素,使用类中的 getter 读取其属性Element
:
Element $wnd = (Element)Document.get().<Element>cast().getPropertyObject("defaultView");
boolean mybool = $wnd.getPropertyBoolean("mybool");
将gwtquery库添加到你的项目中,代码就简单多了:
boolean mybool = $(window).prop("mybool");
于 2013-03-01T12:57:51.390 回答