Ouverture d'une nouvelle fenetre

Fermé
morakevi Messages postés 15 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 2 mai 2016 - 26 sept. 2013 à 10:01
 lac - 25 sept. 2014 à 17:17
Bonjour,

Actuellement, je fait du développement GWT, dans mon application, j'aimerai afficher un carousel dans une nouvelle page du navigateur. C'est à ce moment la que ça coince.

pour afficher ma nouvelle page, j'effectue un appel RPC pour indiqué les documents que le carousel doit afficher (documents sur serveur). ensuite dans le retour, j'appelle une méthode javascript:

WorkspaceRpcAsync.INSTANCE.pushDocumentsToCarousel(UserInformation.getConnexionIdentification(), fileList, new VisibleCallback<Void>() {
@Override
public void success(Void result) {
String url = Meta.getMetaValue("documentCarouselURL");
newWindow(url, "test", 610, 1024);
}
});

Voici ma méthode javascript:


public static native JavaScriptObject newWindow(String url, String name, int height, int width)/*-{
var window = $wnd.open(url, name, "height="+height+",width="+width+",menubar=yes,toolbar=yes");
return window;
}-*/;

Sous Chrome, cela m'ouvre un popup et non une nouvelle page, je n'ai donc pas le menu ni la toolbar,

Sous Firefox, cela fonctionne parfaitement bien, j'ai bien une nouvelle fenêtre.

Sous IE, il m'ouvre un nouvelle onglet dans mon navigateur. je n'ai donc pas ma nouvelle fenêtre.

Est-ce que quelqu'un a une solution a mon problème. Je ne sais pas si en javascript, il est possible d'ouvrir une nouvelle instance du navigateur ?

Merci pour vos réponses.


A voir également:

4 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
2 oct. 2013 à 15:51
public static native JavaScriptObject newWindow(String url, String name, int height, int width)/*-{
var window = $wnd.open(url, name, "height="+height+",width="+width+",menubar=yes,toolbar=yes");
return window;
}-*/;
Quand tu passes en paramètres une hauteur et une largeur à window.open, ça veut dire que tu veux que cette fenêtre soit une popup. Après, tous les navigateurs n'interprètent pas ça de la même façon. Ça dépend si c'est FF, Chrome, etc., de la version, mais aussi des options définies par l'utilisateur.

Si tu veux ouvrir une fenêtre normale, retire le 3e paramètre :
var window = $wnd.open(url, name);

Et pour ta santé d'esprit je te recommande chaudement d'abandonner GWT ;)
0
morakevi Messages postés 15 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 2 mai 2016 8
4 oct. 2013 à 12:08
Salut Groah,

Merci pour ta réponse, ta solution n'ouvre pas exactement une nouvelle fenêtre mais plutôt un nouvel onglet. bien que je suppose que cela doit pouvoir se définir dans le navigateur.

Si tu sais ou cela se trouve ... cela m'intéresse.

Par contre pour Chrome cela ouvre toujours un popup. Est-il possible d'ouvrir une vrai nouvelle fenêtre avec Chrome et pas un popup ?

et merci de t'inquiété pour ma santé d'esprit :-D, que me conseil tu pour remplacer GWT ?
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
Modifié par Groarh le 4/10/2013 à 18:38
Tu as essayé en passant "_blank" comme paramètre name ?
Onglet ou fenêtre, en effet ça dépend du navigateur. Sous Firefox, l'option « Ouvrir un nouvel onglet au lieu d'une nouvelle fenêtre » est activée par défaut, essaye en la désactivant. Pour Chrome... Je ne sais pas.

GWT est un politicien en campagne électorale : il te promet que tu n'auras pas à apprendre JavaScript pour faire des sites web, mais en fait tu dois l'apprendre quand même.
Le mieux c'est de commencer avec un framework (au hasard : jQuery, mais il y a aussi MooTools, Prototype, ExtJS et plein d'autres) qui rend les choses faciles et permet d'apprendre vite, puis d'abandonner le framework quand tu te sens suffisamment à l'aise, pour aborder les détails du langage. Ensuite, quand tu reprends le framework, tu maîtrises vraiment et tu peux vaincre tous les problèmes ;)
0
pour ouvrir une nouvelle fenêtre et non un nouvel onglet il faut utiliser l'option modal=yes ;)
0