我正在开发GWT应用程序,我使用
com.google.gwt.user.client.Window.open(pageUrl, "_blank", "");
打开新页面。并且在调用时打开一个新的选项卡,例如,直接按下按钮。
但是我决定在打开新页面之前对服务器进行一些验证,并将调用放在上述方法之上
public void onSuccess(Object response) {
}
它开始在新窗口中打开页面,而不是新标签页(这仅适用于Chrome,其他浏览器仍然在新选项卡中打开它)。
有谁能够帮助我?
我建立了一个小例子来说明这个问题:
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Window.open("http://www.google.com/", "_blank", "");
MySampleApplicationServiceAsync serviceAsync = GWT.create(MySampleApplicationService.class);
serviceAsync.getMessage("Hello, Server!", new AsyncCallback() {
public void onFailure(Throwable caught) {
Window.alert("ERROR");
}
public void onSuccess(Object result) {
Window.open("http://www.bing.com/", "_blank", "");
}
}
);
}
});
> Firefox(3.6.8)在新选项卡中打开两个页面。
> Chrome(6.0)在新窗口中打开“google.com”,在新窗口中打开“bing.com”
> Opera(10.10)在新标签页中打开。
> IE(8.0)在新的Windows中打开。
我将igorbel的答案标记为唯一正确的cos,我没有找到任何适当的方式来指定在所有情况下的相同行为。