Zajmuję się tworzeniem aplikacji GWT i używamGWT otwarty w nowej karcie
com.google.gwt.user.client.Window.open(pageUrl, "_blank", "");
aby otworzyć nową stronę. I otwiera się w nowej karcie po wywołaniu, na przykład, bezpośrednio po kliknięciu przycisku. Ale postanowiłem zrobić kilka walidacji na serwerze przed otwarciem nowej strony i umieścić wezwanie do wyżej wymienione metody do
public void onSuccess(Object response) {
}
i zaczyna otwarcie strony w nowym oknie zamiast nowej karcie (dotyczy to tylko w przeglądarce Chrome pozostałe przeglądarki nadal otwierają ją w nowej karcie).
Czy ktoś może mi pomóc?
Zbudowałem mały przykład do zilustrowania problemu:
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) otwiera obie strony w nowych kartach.
- Chrome (6.0) otwiera "google.com" w nowej karcie, a "bing.com" w nowym oknie
- Opera (10.10) otwiera się w nowych zakładkach.
- IE (8.0) otwiera się zarówno w nowym systemie Windows.
zaznaczyłem odpowiedź igorbel „s jako jedynie słuszne bo nie znaleziono żadnych właściwy sposób, aby określić takie samo zachowanie w każdej sytuacji.
To z tego pytania było dla mnie pomocne, aby dowiedzieć się, jak otworzyć nową kartę: com.google.gwt.user.client.Window.open (pageUrl, "_blank", ""); – cellepo