4

私は Javascript に変数を持っています。これはtruefalseフルスクリーン モードのオンとオフをそれぞれ切り替えます。GWTここで、コードでその変数にアクセスし、それに応じていくつかのアクションを実行したいと考えています。誰かがそれを行う方法を教えてもらえますか? Googleのドキュメントからは理解できませんでしたJSNI...

4

2 に答える 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]を試してridoffeval関数の副作用を得ることができます。

@manoloが言ったように、gwtQueryを使用している場合は、単純に書くことでより便利になります$(window).prop("mybool")

于 2013-01-28T14:17:05.897 に答える
7

好奇心として、このような単純なことについては、gwt オーバーレイ クラスに既に存在する特定の jsni メソッドを利用することで、jsni メソッドの記述を避けることができます。

したがって、あなたの場合、ウィンドウオブジェクトを取得して要素にキャストし、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 に答える