2014-01-09 57 views
0

我在window.open(url,「」,「」)的幫助下在gwt小部件中打開一個新窗口;一旦新窗口打開,我正在做一些編輯操作。 我想在用戶關閉新打開的窗口後,在gwt小部件中執行一些代碼。這裏(在gwt小部件中)如何知道窗口是否關閉? 我認爲我們有一些窗口事件,但我不知道如何使用它們。如何在瀏覽器窗口關閉後收到通知?

+1

http://stackoverflow.com/a/18395961/2261259 – Shadow

+0

感謝您的答覆,但我需要在GWT的小部件得到通知後,關閉窗口。 –

回答

1

我想出如何在子窗口關閉通知。在gwt中,我們可以通過使用JSNI來完成。
下面的方法是一個jsni來獲取新打開的窗口的引用。

private static native BodyElement getNewWindowRef(String url) /*-{ 
    var childWindow = window.open(url, "_blank", "height=800px width=300px location=no"); 
    return childWindow; 
}-*/; 

要告訴窗口是否關閉,我們可以使用下面的jsni代碼,傳遞從上面得到的變量。

private static native boolean getNewWindowStatus(BodyElement childWin) /*-{ 
    var ret = false; 

    if (childWin.closed) { 
     ret = true; 
    } 

    return ret; 
}-*/; 
0

由於Window.open()不會引用打開的窗口,因此無法使用GWT。

最好的辦法是嘗試和imitate this answer使用本地功能。沒有保證它會工作。 Here's another javascript answer關於同一問題。

這裏是Window.open()的默認操作:

public static native void open(String url, String name, String features) /*-{ 
    $wnd.open(url, name, features); 
    }-*/; 
+0

我們可以通過在gwt中使用JSNI來做到這一點 –