Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2011, 19h09   #1
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
Par défaut Ne pas rafraîchir une page

Bonjour,

J'ai deux pages, une fenêtre normale et un popup, j'ai fais en sorte que lorsque je clique sur le lien de la fenêtre normale le popup apparaît, puis quand je clique sur le lien sur le popup cela m'ouvre la page principale, le problème c'est que je ne veux pas quand je reclique sur le lien pour aller au popup, que celui-ci soit réactualiser car il y a une zone de texte, ci-joint les deux pages:

Page mère:

Code :
1
2
3
4
5
6
7
8
9
10
<HTML>
<SCRIPT>
function ouvrepopup() {
 win=window.open('popup.html','maPopup');
}
</SCRIPT>
<BODY>
<input type="button" onClick="javascript:ouvrepopup()">
</BODY>
</HTML>
Page popup:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<SCRIPT>
function f_load() {
  window.focus();
}
</SCRIPT>
<BODY onLoad="javascript:f_load()">
<p align="center"><a href="mere.html" target="_blank">Cliquez ici pour écrire votre compte rendu</a></p>
<p>
 <textarea name="champs de texte" id="champs de texte" cols="35" rows="20"></textarea>
</p>
</BODY>
</HTML>
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 20h37   #2
Membre éclairé
 
Homme
Développeur Sharepoint/Biztalk
Inscription : octobre 2008
Messages : 500
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur Sharepoint/Biztalk

Informations forums :
Inscription : octobre 2008
Messages : 500
Points : 398
Points : 398
Me semble que tu ne peux pas avoir 2 popup ouvert ..

Peut-être utiliser jquery avec lightbox ? Ca permet d'ouvrir des fenêtres à la façon popup sans bordure etc ...
bob633 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 08h50   #3
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 761
Points : 5 761
Bonjour,

Avec du Javascript, vous pourriez annuler l'action de ouvrepopup une fois la pop up ouverte, et ensuite la réactivée une fois la pop up fermée.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 11h11   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 805
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 805
Points : 35 807
Points : 35 807
Le mieux est de tester si la popup existe lors du clic.
Si elle existe, lui donner le focus, sinon l'ouvrir.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/03/2011, 15h06   #5
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
La deuxième fenêtre s'ouvre bien au premier plan lorsque dans la fenêtre mère je clique sur le lien, le seul truc c'est que je ne veux pas qu'elle soit rafraichit à chaque fois que je clique sur le lien pour y accéder
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 18h30   #6
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 761
Points : 5 761
Mettez en place ce conseil-ci :

Citation:
Envoyé par Bovino Voir le message
Le mieux est de tester si la popup existe lors du clic.
Si elle existe, lui donner le focus, sinon l'ouvrir.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 14h30   #7
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
Oui le popup existe et le focus et là quand je clique pour le faire apparaitre, mais quand je clique à chaque fois ca rafraichit le popup, et je ne veux pas
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 14h43   #8
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 761
Points : 5 761
Oui c'est parce que vous appelez toujours cette instruction-ci :

Code :
1
2
 
win=window.open('popup.html','maPopup');
La proposition de Bovino est de mettre un if autour de l'instruction :

Code :
1
2
3
4
5
6
7
8
9
 
if(win)
{
    win.focus();
}
else
{
    window[win]=window.open('popup.html','maPopup');
}
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h52   #9
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
Ok merci beaucoup, j'ai remplacer par ce que tu m'as dis, mais le popup s'ouvre plus, suis désolé suis débutant en html , je te mets le code que j'ai mis.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<HTML>
<SCRIPT>
function ouvrepopup() {
if(win)
{
    win.focus();
}
else
{
    window[win]=window.open('popup.html','maPopup');
}
 
}
</SCRIPT>
<BODY>
<input type="button" onClick="javascript:ouvrepopup()">
</BODY>
</HTML>
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 00h52   #10
Membre du Club
 
Avatar de Billy KiT
 
Inscription : mars 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 47
Points : 59
Points : 59
Salut, if (win) ça a eu marché, mais ça marche plus.
Je suis aussi intéressé par une solution, car "tester l'existence d'une pop-up" ne semble pas si simple !
win est au départ indéfini => erreur
On peut peut-être corriger en faisant précéder :
Code :
if (typeof(win)=='undefined') {win=false;}
Mais ça marche pas car même en fermant la pop-up, win contient toujours un objet.
Alors on peut essayer de tester une propriété de win, par exemple :
fonctionne sous chrome uniquement et donne une erreur extraordinaire sur IE quand on a fermé la pop-up :
Code :
L’appelé (serveur [pas application serveur]) n’est pas disponible et a disparu ; aucune connexion n’est valide. L’appel ne s’est pas exécuté.
merci d'avance ...
Billy KiT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 01h02   #11
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Bonjour,

Code javascript :
1
2
3
4
5
6
7
8
9
10
11
12
 
var win;
function ouvrepopup() {
	if(window[win])
	{
		window[win].focus();
	}
	else
	{
		window[win]=window.open('tests.htm','maPopup');
	}
}

EDIT: j'ai posté en même temps, c'est vrai que ça ne fonctionne pas non plus si on referme la popup...
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 01h18   #12
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
http://javascript.developpez.com/faq...re#EtatFenetre

Bon ce code doit marcher (testé sur ie8 et chrome) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
var win;
function ouvrepopup() {
	if(window[win] && window[win].closed == false)
	{
		window[win].focus();
	}
	else
	{
		window[win]=window.open('tests.htm','maPopup');
	}
}
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 08h01   #13
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 761
Points : 5 761
Si vous déclarez la variable globale en dehors de la fonction :

Ne la redéclarez pas dans la fonction :

Code :
1
2
3
4
5
6
 
window[win]=
 
// devient
 
win=
Instruction qui était erronée dans mon exemple. Ca devait être :

__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 09h14   #14
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Oui Vermine ! Je ne sais pas trop pourquoi j'ai utilisé cette erreur comme exemple

Voici un code un peu plus propre, qui fonctionne, et qui permet de gérer plusieurs popup...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<html>
<head>
<script type="text/javascript">
var wins = [];
function ouvrepopup(url,ident) {
	if(wins[ident] && wins[ident].closed == false)
	{
		wins[ident].focus();
	}
	else
	{
		wins[ident] = window.open(url,ident, config='height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
	}
}
</script>
</head>
<body>
<input type="button" onclick="ouvrepopup('popup.htm','maPopup1');" value="ouvrir popup1">
<input type="button" onclick="ouvrepopup('popup.htm','maPopup2');" value="ouvrir popup2">
</body>
</html>
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 10h43   #15
Membre du Club
 
Avatar de Billy KiT
 
Inscription : mars 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 47
Points : 59
Points : 59
Merci nadox, nickel chrome ! (heu ... avec FF aussi )
Billy KiT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 12h24   #16
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
j'aurais même dit:

Code :
1
2
3
4
5
6
7
8
9
10
var win;
 
function ouvre(){
	if(!win || win.closed){
		win=window.open("test.htm","page1","")
	}
	else {
		win.focus()
	}
}
__________________
On ne mord pas, on manifeste seulement notre tristesse face à des exposés de situations qui défient notre entendement binaire.
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h00   #17
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
Alors j'ai mis le code que vous m'avez dit, mais j'ai toujours le même problème, les fenêtres s'ouvrent à chaque fois dans une autre fenêtre, ma fenêtre popup ne s'ouvre pas dans l'unique fenêtre comme avant
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h10   #18
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
Et voila les deux fichiers, le premier et le principale, et le fichier popup. Vous pouvez essayer sur IE ca ne marche pas. J'ai peut être mal mis le code. Mais avant j'avais bien ma fenêtre popup qui s'ouvrait dans une fenêtre indépendante, et qui se remettait en avant lorsqu'on clique sur le lien pour y accéder. Je voulais seulement que le popup ne soit pas actualisé lorsqu'on clique sur le lien de la page principale.
Fichier principale.
Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>
<script type="text/javascript">
var win;
function ouvrepopup() {
	if(window[win] && window[win].closed == false)
	{
		window[win].focus();
	}
	else
	{
		window[win]=window.open('tests.htm','maPopup');
	}
}
 
 </script>
 </head>
 <body>
<a href="popup.html" onclick="return ouvrepopup();">texte du lien</a>
</body>
</html>

Fichier popup:
Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<SCRIPT>
function f_load() {
  window.focus();
}
</SCRIPT>
<BODY onLoad="javascript:f_load()">
<p align="center"><a href="mere.html" target="_blank">Cliquez ici pour écrire votre compte rendu</a></p>
<p>
 <textarea name="champs de texte" id="champs de texte" cols="35" rows="20"></textarea>
</p>
</BODY>
</HTML>
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 15h01   #19
Invité de passage
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 1
Points : 1
Bien évidemment j'ai remplacé test.htm par popup.htm
metabaron81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 15h18   #20
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Puisque tu ne semble pas vraiment comprendre les différents code qu'on a mis, pour ton cas ce code doit faire l'affaire... :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<html>
<head>
<script type="text/javascript">
var win;
function ouvrepopup(){
	if(!win || win.closed){
		win=window.open("popup.html","page1","titlebar=no");
	}
	else {
		win.focus();
	}
	return false;
}
 </script>
 </head>
 <body>
<a href="popup.html" onclick="return ouvrepopup();">texte du lien</a>
</body>
</html>
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h35.


 
 
 
 
Partenaires

Hébergement Web