2

你好

我在其中一个入口点类中编写了代码:

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 回答