Я разрабатываю приложение 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 как единственныйправильно, потому что я не нашел подходящего способа указать одинаковое поведение во всех ситуациях.