0

ここで説明するように、HTTPRequestに関連付けられたウィンドウを最初に取得する拡張機能を構築しています。

ドキュメントには、外部Webサイトからのsrcを持つdiv要素があります。基本的にリクエストをキャンセルして、関連するウィンドウを取得します。
次に、そのウィンドウのドキュメントに「HelloWorld」という文字列を入力するとします。

JavaScript(JSNI)で以下を使用すると機能します(つまり、通常は外部ソースからのデータが存在する文字列を置き換えます)。

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

しかし、私はJSNIではなくJavaでそれを行う必要があります。

クラス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 に答える