0

我正在构建一个扩展,它首先获取与 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 文档的顶级正文。

这里有什么问题?Document 是在这里使用的错误类吗?

4

1 回答 1

0

您的代码没有问题:

window.document捐赠Document.

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

doc.getBody().setInnerHTML(""); 将删除完整的内容并将正文设置为新值。

我认为您正在寻找appendChild

DOM.appentChild(doc.getBody(), new HTML('Hello World!').getElement());
于 2012-06-04T13:57:00.903 回答