我在window.open(url,“”,“”)的帮助下在gwt小部件中打开一个新窗口;一旦新窗口打开,我正在进行一些编辑操作。 我想在用户关闭新打开的窗口后,在gwt小部件中执行一些代码。这里(在gwt小部件中)怎么知道窗口是否关闭? 我想我们有一些窗口事件,但我不知道如何使用它们。
答案 0 :(得分: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;
}-*/;
答案 1 :(得分:0)
阅读帖子后:
GWT - "Access is Denied" JavaScript error when setting document.domain in Internet Explorer only
这可能会将消息发送到另一个浏览器窗口。
答案 2 :(得分:0)
你不能用GWT做,因为Window.open()
没有返回对打开的窗口的引用。
最好的办法是尝试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);
}-*/;