OVH Cloud OVH Cloud

eviter 2 fenetres

3 réponses
Avatar
Erik Verhagen
Bonjour,
je m'essaye depuis quelques temps à dojo, j'aime assez... On peut créer
des fenetres avec le contenu qu'on veux juste avec un onclic="fonction
d'ouverture(fenetre a ouvrir)". Sympa. Mais voila j'aimerais assez qu'on
ne puisse pas ouvrir une meme fenetre deux fois ... c'est sans doutes
enfantin mais là je bloque. Quelqu'un a une idée ?

voici ma fonction d'ouverture pour ceux qui connaissent un peu Dojo :

function openWindow(choix) {
if (choix == "qui_va_bien"){
var properties = {
title:'Test Window',
... et tout un tas d'autres propriété ...
};

properties.id = "de_toute_beaute";
node = document.createElement(properties.id);
node.style.width = "300px";
node.style.height = "300px";
node.style.left = "30px";
node.style.right = "30px";
node.style.top = "40px";
document.body.appendChild(node);

var win_qui_va_bien =
dojo.widget.createWidget("FloatingPane", properties, node);
}

else if (choix == une autre fenetre) {
contenu a peu pres indentique
}
etc...

cordialement,

Erik !

3 réponses

Avatar
ASM
Bonjour,
je m'essaye depuis quelques temps à dojo, j'aime assez... On peut créer
des fenetres avec le contenu qu'on veux juste avec un onclic="fonction
d'ouverture(fenetre a ouvrir)". Sympa. Mais voila j'aimerais assez qu'on
ne puisse pas ouvrir une meme fenetre deux fois ... c'est sans doutes
enfantin mais là je bloque. Quelqu'un a une idée ?


c'est enfantin en JS "normal" :
il suffit de donner le même nom aux fenêtres (et ne pas vouloir que la
présentation de la 2ième soit différente de la 1ère)

voici ma fonction d'ouverture pour ceux qui connaissent un peu Dojo :


He ben ! c'est un peu lourdingue ce dojo !

function openWindow(choix) {


(snip)

var win_qui_va_bien =
dojo.widget.createWidget("FloatingPane", properties, node);


essayer (sans aucune garantie) en supprimant 'var' de cette ligne
(et pareil pour la suite 'une autre fenetre')

win_correcte = dojo.widget.createWidget("FloatingPane", properties, node);
}
else if(blabla) {
... / ...

win_correcte = dojo.widget.createWidget("FloatingPane", properties, node);
}

etc ...

AVEC toujours le même nom pour le dojo.widget.createWidget()
à moins que le nom de fenêtre soit déjà dans les properties stipulées ?

Le problème est si on veut des properties différentes (de taille ou
autre réglage de présentation de fenêtre) d'un cas à l'autre car alors
il faut faire fermer le popup avant de le re-ouvrir.

Tutoriel (autoriser les popups pour ce tuto) :
http://perso.orange.fr/stephane.moriaux/internet/web_html/java/fenetr/
Plus sérieux :
http://developer.mozilla.org/fr/docs/DOM:window.open


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Erik Verhagen
Alors en fait, je pense qu'il y a confusion.
appellons application chaque " if (choix == "qui_va_bien") ", et chaque
" win_correcte = dojo.widget.createWidget()blabla une fenetre qui doit
s'ouvrir.
Je veux pouvoir ouvrir tout un tas de ces applications en meme temps,
mais en un seul exemplaire chacune.
Alors après une nuit sans dormir, je me suis appercu que ca doit pas
etre dur de faire ouvrir une fenetre q'une fois. mais je veux egalement
(et j'ai oublié de le precicer dans mon precedant post) pourvoir la
rouvrir une fois que je l'ai fermé (tester l'existence de win_correcte
ne suffit donc pas).
quelqu'un a t'il une idée ?

cordialement,

Erik !





Bonjour,
je m'essaye depuis quelques temps à dojo, j'aime assez... On peut
créer des fenetres avec le contenu qu'on veux juste avec un
onclic="fonction d'ouverture(fenetre a ouvrir)". Sympa. Mais voila
j'aimerais assez qu'on ne puisse pas ouvrir une meme fenetre deux fois
... c'est sans doutes enfantin mais là je bloque. Quelqu'un a une idée ?



c'est enfantin en JS "normal" :
il suffit de donner le même nom aux fenêtres (et ne pas vouloir que la
présentation de la 2ième soit différente de la 1ère)

voici ma fonction d'ouverture pour ceux qui connaissent un peu Dojo :



He ben ! c'est un peu lourdingue ce dojo !

function openWindow(choix) {



(snip)

var win_qui_va_bien =
dojo.widget.createWidget("FloatingPane", properties, node);



essayer (sans aucune garantie) en supprimant 'var' de cette ligne
(et pareil pour la suite 'une autre fenetre')

win_correcte = dojo.widget.createWidget("FloatingPane", properties, node);
}
else if(blabla) {
... / ...

win_correcte = dojo.widget.createWidget("FloatingPane", properties, node);
}

etc ...

AVEC toujours le même nom pour le dojo.widget.createWidget()
à moins que le nom de fenêtre soit déjà dans les properties stipulées ?

Le problème est si on veut des properties différentes (de taille ou
autre réglage de présentation de fenêtre) d'un cas à l'autre car alors
il faut faire fermer le popup avant de le re-ouvrir.

Tutoriel (autoriser les popups pour ce tuto) :
http://perso.orange.fr/stephane.moriaux/internet/web_html/java/fenetr/
Plus sérieux :
http://developer.mozilla.org/fr/docs/DOM:window.open





Avatar
ASM
Je veux pouvoir ouvrir tout un tas de ces applications en meme temps,
mais en un seul exemplaire chacune.
Alors après une nuit sans dormir, je me suis appercu que ca doit pas
etre dur de faire ouvrir une fenetre q'une fois. mais je veux egalement
(et j'ai oublié de le precicer dans mon precedant post) pourvoir la
rouvrir une fois que je l'ai fermé (tester l'existence de win_correcte
ne suffit donc pas).


Bien sûr que si (ou presque).
As-tu compulsé mon 'tit tito (non fini) ?

Sinon voici le truc JS de base :

Soit f_1 la fenêtre popup

<script type="text/javascript">

var f_1 = false;

function pop_1() {
// réglages de la fenêtre
var properties = 'top=0,width=0,scrollbars=1,resizable=1';
// si fenêtre f_1 n'existe pas ou est fermée
if(!f_1 || f_1.closed)
// on crée la fenetre qui va bien
f_1 = window.open('','',properties);
// maintenant qu'on est assuré que la fenêtre f_1 existe
// on y envoie la page qui va bien aussi
f_1.location = truc_muche_1.htm;
// on passe cette nouvelle fenêtre en 1er plan
f_1.focus();
}

</script>


Tutoriel (autoriser les popups pour ce tuto) :
http://perso.orange.fr/stephane.moriaux/internet/web_html/java/fenetr/
Plus sérieux :
http://developer.mozilla.org/fr/docs/DOM:window.open





--
Stephane Moriaux et son [moins] vieux Mac