GWT检测DOM更改或修改

GWT检测DOM更改或修改,dom,gwt,mutation,Dom,Gwt,Mutation,我想做什么 我有一个现有的页面(由系统自动生成,我对它没有任何控制权),在该页面中,我正在注入GWT代码,以便在页面根据某些列加载后修改页面的行为,并增强页面的功能。例如,在添加my GWT代码后,其中一个表列中的单元格将变得可单击,当用户单击它时,其他信息将在弹出面板中显示给用户。一切正常 问题是什么 在我注入代码的通用页面中,有一个分页表,一次显示15行。现在,当我加载/刷新页面时,我的GWT代码在特定列中启动并接收事件,该列向单元格添加功能(如上所述)。但是,当用户使用左右按钮导航分页结果

我想做什么

我有一个现有的页面(由系统自动生成,我对它没有任何控制权),在该页面中,我正在注入GWT代码,以便在页面根据某些列加载后修改页面的行为,并增强页面的功能。例如,在添加my GWT代码后,其中一个表列中的单元格将变得可单击,当用户单击它时,其他信息将在弹出面板中显示给用户。一切正常

问题是什么

在我注入代码的通用页面中,有一个分页表,一次显示15行。现在,当我加载/刷新页面时,我的GWT代码在特定列中启动并接收事件,该列向单元格添加功能(如上所述)。但是,当用户使用左右按钮导航分页结果时,页面不会刷新,因为它是一个异步调用。新的15行集合中的特定列现在没有沉没事件,因为GWT代码不知道页面已更改

我试图找到一种方法来告诉我的GWT代码页面已经更改,它应该将事件接收到新15行的特定列的单元格中,但找不到任何方法或机制来帮助我捕获DOM/文档更改事件。我尝试过这样做,但没有帮助:

new ChangeHandler(){

            @Override
            public void onChange(ChangeEvent event) {
                Window.alert("Something Changed");

            }
我可能遗漏了一些非常明显的东西。发布此问题是为了了解是否有一种简单的方法可以了解GWT中的DOM更改。在没有运气的情况下搜索DOM/文档更改/变异等


如果有人知道如何在GWT中检测DOM更改,他们会非常感激,否则他们会继续使用本机变异观察器编写本机代码

您可以尝试以下方法:

首先使用以下命令获取输入元素:

InputElement goOn   = DOM.getElementById("IdOfGoOnButton").cast();
InputElement goBack = DOM.getElementById("IdOfGoBackButton").cast();
接下来添加本机EventHandler:

Event.addNativePreviewHandler(new Event.NativePreviewHandler() {
  @Override
  public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
    if (event.getTypeInt() == Event.ONCLICK) {
      if (event.getNativeEvent()
               .getEventTarget() != null) {
        Element as = Element.as(event.getNativeEvent()
                                     .getEventTarget());
        if (as.getTagName()
              .toLowerCase()
              .equals("input")) {
          InputElement clickedElement = as.cast();
          if (clickedElement.getId().equals(goOn.getId()) ||
              clickedElement.getId().equals(goBack.getId())) {
            // one of the paging button is pressed
          }
        }
      }
    }
  }
});

希望有帮助。

页面按钮是生成页面的一部分吗?你知道有id吗?是的,分页按钮是生成页面的一部分,只是检查它们是否有id。我想我明白你建议的解决办法了。非常感谢El给我指路。非常感谢El。我们能够解决它。事实上,事件类的介绍提供了新的见解。我意识到Event.addNativePreviewHandler提供了网页的完全敏感性,我甚至可以知道是否有人在页面上移动鼠标。现在,我只是想在页面上的任何地方单击一下,每当用户单击时,我都会将事件再次放入表中特定列的单元格中,它就像魔术一样工作。下沉发生在处理click事件之前,因此当加载新页面并且用户单击单元格时,会触发该功能。