在新窗口中显示GWT RPC结果

时间:2012-05-14 07:48:46

标签: gwt

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) {}
        });

1 个答案:

答案 0 :(得分: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没有内置支持来使用外部窗口。