我在window.open(url,「」,「」)的幫助下在gwt小部件中打開一個新窗口;一旦新窗口打開,我正在做一些編輯操作。 我想在用戶關閉新打開的窗口後,在gwt小部件中執行一些代碼。這裏(在gwt小部件中)如何知道窗口是否關閉? 我認爲我們有一些窗口事件,但我不知道如何使用它們。如何在瀏覽器窗口關閉後收到通知?
回答
我想出如何在子窗口關閉通知。在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;
}-*/;
閱讀部份文章後:
GWT - "Access is Denied" JavaScript error when setting document.domain in Internet Explorer only
也許這是一個mesage發送到另一個瀏覽器窗口中possibilit。
是的,我已經在gwt文檔中看到了這些窗口處理程序,我不知道上面的代碼將如何執行,一旦我關閉了窗口,它將被放入gwt窗口小部件中。 –
由於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);
}-*/;
我們可以通過在gwt中使用JSNI來做到這一點 –
- 1. 如何關閉瀏覽器窗口?
- 2. Dart:如何關閉瀏覽器窗口?
- 3. 如何關閉瀏覽器窗口
- 4. 關閉彈出窗口關閉直到瀏覽器關閉
- 5. 如何通過window.close(javascript)關閉窗口時收到通知?
- 6. 如何關閉瀏覽器的父窗口也關閉子彈出窗口?
- 7. 當瀏覽器窗口關閉
- 8. driver.quit()不關閉瀏覽器窗口
- 9. 關閉瀏覽器窗口javascript for blackberry
- 10. 自動關閉瀏覽器窗口
- 11. geb spock並關閉瀏覽器窗口
- 12. Silverlight - 關閉瀏覽器窗口
- 13. 檢查瀏覽器窗口關閉
- 14. 關閉瀏覽器的主窗口
- 15. 卸載時關閉瀏覽器窗口
- 16. 關閉所有瀏覽器窗口?
- 17. 跨瀏覽器窗口關閉事件
- 18. Selenium關閉瀏覽器彈出窗口
- 19. 關閉Vaadin的瀏覽器窗口
- 20. 使用asp.net關閉瀏覽器窗口
- 21. Flash AS3關閉瀏覽器窗口
- 22. 在瀏覽器窗口關閉前顯示jQuery彈出窗口
- 23. 如何在關閉瀏覽器窗口時關閉本地tomcat服務器?
- 24. 我需要在更新後關閉瀏覽器窗口
- 25. 如何將通知推送到瀏覽器窗口?
- 26. 最後窗口關閉事件偵聽器的Chrome瀏覽器
- 27. 如何關閉窗口,在瀏覽器的JavaScript
- 28. 如何在JavaScript中關閉瀏覽器窗口?
- 29. 如何在瀏覽器關閉時創建彈出窗口
- 30. 如何使用javascript在瀏覽器中關閉打印窗口
http://stackoverflow.com/a/18395961/2261259 – Shadow
感謝您的答覆,但我需要在GWT的小部件得到通知後,關閉窗口。 –