我正在构建一个扩展,它首先获得与HTTPRequest关联的窗口,如here所述。
文档中有一个div元素,它有一个来自外部网站的src。我基本上取消了请求并获得了相关的窗口 现在说我想用字符串“Hello World”填充该窗口的doc。
在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文档的顶级正文。
这是什么问题?文档是在这里使用的错误类吗?
答案 0 :(得分:0)
您的代码没有问题:
window.document
捐赠Document
。
doc.getBody()
将成为文件的完整正文。
doc.getBody().setInnerHTML("")
;将重新制作完整的内容并将正文设置为新值。
我认为您正在寻找appendChild:
DOM.appentChild(doc.getBody(), new HTML('Hello World!').getElement());