Sex*_*ast 4 java gwt html5 fullscreen jsni
我在Javascript中的变量,其切换之间true和false当全屏模式分别接通和关断.现在我想在我的GWT代码中访问该变量,并相应地执行一些操作.谁能告诉我怎么做?我无法从Google文档中了解到JSNI...
在JavaScript中
var mybool = true;
Run Code Online (Sandbox Code Playgroud)
你在MyClass类中的JSNI方法;
public static native boolean getNativeVariableType(String jsVar)/*-{
return eval('$wnd.' + jsVar);
}-*/;
Run Code Online (Sandbox Code Playgroud)
最后在GWT中使用;
boolean getFormJs = Myclass.getNativeVariableType("mybool");
Run Code Online (Sandbox Code Playgroud)
由于@dodoot提出了这一点,你可以尝试这个return !!$wnd[jsVar]来摆脱eval功能副作用.
正如@manolo所说,如果你正在使用gwtQuery,那么简单地写一下就会更方便$(window).prop("mybool").
就像好奇心一样,对于像这样的简单事情,你可以通过利用gwt overlay类中已经存在的某些jsni方法来避免编写jsni方法.
因此,在您的情况下,您可以获取窗口对象,并将其转换为元素,使用Element类中的getter读取其属性:
Element $wnd = (Element)Document.get().<Element>cast().getPropertyObject("defaultView");
boolean mybool = $wnd.getPropertyBoolean("mybool");
Run Code Online (Sandbox Code Playgroud)
将gwtquery库添加到项目中,代码更简单:
boolean mybool = $(window).prop("mybool");
Run Code Online (Sandbox Code Playgroud)