哪个类等效于 GWT 中 Javascript 的对象 window.document

Which class is equivalent to the Javascript's object window.document in GWT?

本文关键字:Javascript 对象 window document GWT      更新时间:2023-09-26

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

文档中有一个div 元素,其中包含来自外部网站的 src。我基本上取消请求并获取关联的窗口。
现在假设我想用字符串"Hello World"填充该窗口的文档。

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

window.document.write("Hello World");

但我真的需要在Java中而不是通过JSNI来做到这一点。

我尝试使用类 Document 将从 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捐赠了Document

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

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

我想你正在寻找附录孩子:

DOM.appentChild(doc.getBody(), new HTML('Hello World!').getElement());