0

GWT Window#openメソッドを使用して新しいブラウザー ウィンドウを開くことができますが、通常の同期 URL 接続に対して機能します。GWT RPC以下の新しいブラウザウィンドウで呼び出しからの非同期結果を表示する方法は?

        myServiceAsync.getHtmlResult(new AsyncCallback<String>() {
             @Override
             public void onSuccess(String htmlResult) {

//how to display #htmlResult in a new browser window?

             }
             @Override
             public void onFailure(Throwable caught) {}
        });
4

1 に答える 1

1

この問題を解決するには、 JSNI経由で Javascript を使用できます。

このようなメソッドはトリックを行います:

public native void showWindowWithHtml(String html)/*-{
  var newWindow = $wnd.open("about:blank"); //receive a reference to the window object
  newWindow.document.body.innerHTML = html; //works for IE9 and Chrome 
  newWindow.onload = function(){newWindow.document.body.innerHTML = html} //works for Firefox 11

}-*/;

呼び出すと、指定された HTML で新しいウィンドウが表示されます。また、このネイティブ メソッド内の js は単なる例ではありません。常にどこでも機能することを保証するものではありません。

GWT には外部ウィンドウを操作するためのサポートが組み込まれていないため、このアプローチを使用する必要があります。

于 2012-05-15T13:09:22.973 に答える