2

やあ

エントリ ポイント クラスの 1 つに次のようにコードを書きました。

if(RootPanel.get("fb-root") != null)
         form = new BloodDonorForm(Constants.INSERT, null, Constants.FACEBOOK, Constants.BLOOD_DONOR_REGISTER_FORM); 
else
         form = new BloodDonorForm(Constants.INSERT, null, null, Constants.BLOOD_DONOR_REGISTER_FORM);

これは、以前は確かにうまく機能していました(前回これをいつチェックしたか覚えていません)。しかし、firebug を有効にして Firefox でページを実行すると、次のようなメッセージが表示されます。

The "fb-root" div has not been created, auto-creating

では、存在しない場合、なぜこれが行われるのでしょうか? 過去にこれをテストしたことがあると確信していますが、これは以前は発生していませんでした。

4

1 に答える 1

2

これは、GWT自体の変更である可能性があります。とはいえ、これはdom要素が存在するかどうかを確認するための最良の方法ではありません。

代わりに、を使用Document.get().getElementById(String)してIDで要素をチェックし、それをnullと比較します。これは非常に単純なもの(おそらくちょうど$doc.getElementById(id))にコンパイルされ、ウィジェット(RootPanelはウィジェットです)とそれに伴うオーバーヘッドはまだ作成されません。

于 2012-06-04T20:58:08.260 に答える