哪个类与Javascript';GWT中的s object window.document?

哪个类与Javascript';GWT中的s object window.document?,java,javascript,gwt,firefox-addon,Java,Javascript,Gwt,Firefox Addon,我正在构建一个扩展,它首先获取与HTTPRequest相关联的窗口,如前所述 文档中有一个div元素,它具有来自外部网站的src。我基本上取消了请求并获得了相关窗口。 现在,假设我想用字符串“Hello World”填充该窗口的文档 在JavaScript(JSNI)中使用以下代码(即,它替换了通常来自外部源的数据所在的字符串): 但我真的需要用Java而不是通过JSNI来实现这一点 我尝试使用类文档将从JSNI调用的对象传递为: @[package].[class]::populateBox(

我正在构建一个扩展,它首先获取与HTTPRequest相关联的窗口,如前所述

文档中有一个div元素,它具有来自外部网站的src。我基本上取消了请求并获得了相关窗口。
现在,假设我想用字符串“Hello World”填充该窗口的文档

在JavaScript(JSNI)中使用以下代码(即,它替换了通常来自外部源的数据所在的字符串):

但我真的需要用Java而不是通过JSNI来实现这一点

我尝试使用类文档将从JSNI调用的对象传递为:

@[package].[class]::populateBox(Lcom/google/gwt/dom/client/Document)(window.document);
该方法定义为:

public static void populateBox(Document doc){
  doc.getBody().setInnerHTML("Hello World);
}
此代码取代了加载请求的div处的文本,而取代了html文档的顶层主体


这里有什么问题?此处使用的文档类是否错误?

您的代码没有问题:

window.document
捐赠
文档

doc.getBody()
将是文档的完整正文

doc.getBody().setInnerHTML(“”)
;将重新移动完整内容并将正文设置为新值

我认为您正在寻找:


HTML类是一个小部件,不是元素,因此不能直接追加。JSNI代码也可以写成
$doc.innerHTML=“Hello World”
。但是添加一个小部件会更好地表示为
RootPanel.get().add(新的HTML(“Hello world”)
public static void populateBox(Document doc){
  doc.getBody().setInnerHTML("Hello World);
}
DOM.appentChild(doc.getBody(), new HTML('Hello World!').getElement());