J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A et qui se
connecte sur une zone protégé par un mot de passe. Toute cette partie est
gérée par php et des sessions.
Dans la popup il y a bien un bouton 'quitter' qui détruit la session et
toutes les variables qu'elle contient mais j'aimerais que la fenetre
ouvrante A ecoute la fenetre 'main' pour savoir si elle est fermée.
Voici le code que j'ai mis sur la fenetre A
//fonction qui test la fermeture de la fenetre main
function testOpen()
{
var w = 'main';
if(w.closed){
//Truc bidon pour tester
alert('La fenetre est fermée');
}
}
//Fonction qui soume le formulaire de connection et envoie le mot de passe
function soumet(myform)
{
if (! window.focus)return true;
window.open('','main' , 'toolbar=0, location=0, directories=0,
resizable=1, scrollbars=1, copyhistory=0');
myform.target='main';
//à l'envoie du formulaire, on déclanche l'écouteur
Idtimer = setInterval("testOpen()", 200);
return true;
}
Le code tel quel ne marche pas.
Je ne peut pas mettre un onUnload dans la fenetre 'main' car tout le reste
est en pseudo frame avec des include.
J'ai essayé de trouver un script ... Pas de succès
Alors ??? A coté de quoi suis-je passé ???
Merci de vos avis avisés
J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A j'aimerais que la fenetre ouvrante A ecoute la fenetre 'main' pour savoir si elle est fermée.
La fenêtre pop-up peut envoyer un message à l'ouvrante
page A [script js] function alarm(){ alert('pop-up disparu !'); var Nom,Prenom,Adresse,CP,Ville, etc etc ;
page pop-up <body onunload="envoi();opener.alarm();" onload="recevoir();"> [script js] function envoi(){ var D = document.forms[0]; for(var i=0; i<D.length-2; i++) opener.D[i].name = D[i].value; } function recevoir(){ var D = document.forms[0]; for(var i=0; i<D.length-2; i++) if(opener.D[i].name && opener.D[i].name!='') D[i].value = opener.D[i].name; }
Voici le code que j'ai mis sur la fenetre A //fonction qui test la fermeture de la fenetre main
d'abord déclarer globalement main :
mainúlse;
function testOpen() { var w = 'main';
je ferais çà directement (pas la peine d'emberlificoter le JS) :
if(!main || main.closed) alert('popup mort');
if(w.closed){ //Truc bidon pour tester alert('La fenetre est fermée'); } } //Fonction qui soume le formulaire de connection et envoie le mot de passe function soumet(myform) { if (! window.focus)return true;
ici préférer :
main = window.open('','','et le blabla);
le target du window.open ('','main','...') le JS s'en contre balance pour le test de présence du popup, ce qu'il a besoin de connaître c'est la réf à l'objet window. Ref donnée par : main = non de la fenêtre (ouverte par window.open() )
J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A
j'aimerais que la fenetre
ouvrante A ecoute la fenetre 'main' pour savoir si elle est fermée.
La fenêtre pop-up peut envoyer un message à l'ouvrante
page A
[script js]
function alarm(){ alert('pop-up disparu !');
var Nom,Prenom,Adresse,CP,Ville, etc etc ;
page pop-up
<body onunload="envoi();opener.alarm();" onload="recevoir();">
[script js]
function envoi(){
var D = document.forms[0];
for(var i=0; i<D.length-2; i++)
opener.D[i].name = D[i].value;
}
function recevoir(){
var D = document.forms[0];
for(var i=0; i<D.length-2; i++)
if(opener.D[i].name && opener.D[i].name!='')
D[i].value = opener.D[i].name;
}
Voici le code que j'ai mis sur la fenetre A
//fonction qui test la fermeture de la fenetre main
d'abord déclarer globalement main :
mainúlse;
function testOpen()
{
var w = 'main';
je ferais çà directement (pas la peine d'emberlificoter le JS) :
if(!main || main.closed) alert('popup mort');
if(w.closed){
//Truc bidon pour tester
alert('La fenetre est fermée');
}
}
//Fonction qui soume le formulaire de connection et envoie le mot de passe
function soumet(myform)
{
if (! window.focus)return true;
ici préférer :
main = window.open('','','et le blabla);
le target du window.open ('','main','...')
le JS s'en contre balance pour le test de présence du popup,
ce qu'il a besoin de connaître c'est la réf à l'objet window.
Ref donnée par : main = non de la fenêtre (ouverte par window.open() )
J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A j'aimerais que la fenetre ouvrante A ecoute la fenetre 'main' pour savoir si elle est fermée.
La fenêtre pop-up peut envoyer un message à l'ouvrante
page A [script js] function alarm(){ alert('pop-up disparu !'); var Nom,Prenom,Adresse,CP,Ville, etc etc ;
page pop-up <body onunload="envoi();opener.alarm();" onload="recevoir();"> [script js] function envoi(){ var D = document.forms[0]; for(var i=0; i<D.length-2; i++) opener.D[i].name = D[i].value; } function recevoir(){ var D = document.forms[0]; for(var i=0; i<D.length-2; i++) if(opener.D[i].name && opener.D[i].name!='') D[i].value = opener.D[i].name; }
Voici le code que j'ai mis sur la fenetre A //fonction qui test la fermeture de la fenetre main
d'abord déclarer globalement main :
mainúlse;
function testOpen() { var w = 'main';
je ferais çà directement (pas la peine d'emberlificoter le JS) :
if(!main || main.closed) alert('popup mort');
if(w.closed){ //Truc bidon pour tester alert('La fenetre est fermée'); } } //Fonction qui soume le formulaire de connection et envoie le mot de passe function soumet(myform) { if (! window.focus)return true;
ici préférer :
main = window.open('','','et le blabla);
le target du window.open ('','main','...') le JS s'en contre balance pour le test de présence du popup, ce qu'il a besoin de connaître c'est la réf à l'objet window. Ref donnée par : main = non de la fenêtre (ouverte par window.open() )
La fenêtre pop-up peut envoyer un message à l'ouvrante .... page pop-up <body onunload="envoi();opener.alarm();" onload="recevoir();"> Je ne peux pas mettre sur un onUnload car la popup est rechargée à chaque
requete (c'est le principe des include) donc elle lance envoi() à chaque fois qu'elle se ferme pour se réouvrir avec un autre contenu. C'est justement ca qui m'ennuie. Sinon, j'ai été voir sur tes pages, j'y ai appris des choses mais pas de solution à mon problème :( Merci quand meme, je vais retravailler ca dès que je peux et si j'ai la soluce, je la poste. Merci
HENRY Serge
"@SM" <stephaneOTEZ-MOImoriaux@wanadoo.fr> a écrit dans le message de
news:4160027F.6D183987@wanadoo.fr...
La fenêtre pop-up peut envoyer un message à l'ouvrante
....
page pop-up
<body onunload="envoi();opener.alarm();" onload="recevoir();">
Je ne peux pas mettre sur un onUnload car la popup est rechargée à chaque
requete (c'est le principe des include) donc elle lance envoi() à chaque
fois qu'elle se ferme pour se réouvrir avec un autre contenu.
C'est justement ca qui m'ennuie.
Sinon, j'ai été voir sur tes pages, j'y ai appris des choses mais pas de
solution à mon problème :(
Merci quand meme, je vais retravailler ca dès que je peux et si j'ai la
soluce, je la poste.
Merci
La fenêtre pop-up peut envoyer un message à l'ouvrante .... page pop-up <body onunload="envoi();opener.alarm();" onload="recevoir();"> Je ne peux pas mettre sur un onUnload car la popup est rechargée à chaque
requete (c'est le principe des include) donc elle lance envoi() à chaque fois qu'elle se ferme pour se réouvrir avec un autre contenu. C'est justement ca qui m'ennuie. Sinon, j'ai été voir sur tes pages, j'y ai appris des choses mais pas de solution à mon problème :( Merci quand meme, je vais retravailler ca dès que je peux et si j'ai la soluce, je la poste. Merci
HENRY Serge
Pierre Goiffon
"Henry Serge" a écrit dans le message de news:415e7a0d$0$3036$
je pose le problème :
J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A et qui se connecte sur une zone protégé par un mot de passe. Toute cette partie est gérée par php et des sessions. Dans la popup il y a bien un bouton 'quitter' qui détruit la session et toutes les variables qu'elle contient mais j'aimerais que la fenetre ouvrante A ecoute la fenetre 'main' pour savoir si elle est fermée.
Très sincèrement, vous êtes mal partit. Vous allez pouvoir construire des usines à gaz permettant côté client de détruire la session et effectuer les actions métier qui y sont associées mais... Ca ne fonctionnera que dans certains cas, et vous allez toujours avoir des problèmes, des incohérences... bref pas des choses que l'on apprécie dans un SI.
Je vous encourage très vivement soit à vous tourner vers des "vraies" technologies de client riche, soit de tout gérer côté serveur. C'est très insatisfaisant ce genre de réponse mais croyez moi, ce sont des années d'expérience de développement en environnement Web qui parlent :o)
Bon courage !
"Henry Serge" <henry.sergeANTISPAM@fenetre-sur.com> a écrit dans le
message de news:415e7a0d$0$3036$8fcfb975@news.wanadoo.fr
je pose le problème :
J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A et qui se
connecte sur une zone protégé par un mot de passe. Toute cette partie
est gérée par php et des sessions.
Dans la popup il y a bien un bouton 'quitter' qui détruit la session
et toutes les variables qu'elle contient mais j'aimerais que la
fenetre ouvrante A ecoute la fenetre 'main' pour savoir si elle est
fermée.
Très sincèrement, vous êtes mal partit. Vous allez pouvoir construire des
usines à gaz permettant côté client de détruire la session et effectuer les
actions métier qui y sont associées mais... Ca ne fonctionnera que dans
certains cas, et vous allez toujours avoir des problèmes, des
incohérences... bref pas des choses que l'on apprécie dans un SI.
Je vous encourage très vivement soit à vous tourner vers des "vraies"
technologies de client riche, soit de tout gérer côté serveur. C'est très
insatisfaisant ce genre de réponse mais croyez moi, ce sont des années
d'expérience de développement en environnement Web qui parlent :o)
"Henry Serge" a écrit dans le message de news:415e7a0d$0$3036$
je pose le problème :
J'ai une popup 'main' qui s'ouvre à partir d'une fenetre A et qui se connecte sur une zone protégé par un mot de passe. Toute cette partie est gérée par php et des sessions. Dans la popup il y a bien un bouton 'quitter' qui détruit la session et toutes les variables qu'elle contient mais j'aimerais que la fenetre ouvrante A ecoute la fenetre 'main' pour savoir si elle est fermée.
Très sincèrement, vous êtes mal partit. Vous allez pouvoir construire des usines à gaz permettant côté client de détruire la session et effectuer les actions métier qui y sont associées mais... Ca ne fonctionnera que dans certains cas, et vous allez toujours avoir des problèmes, des incohérences... bref pas des choses que l'on apprécie dans un SI.
Je vous encourage très vivement soit à vous tourner vers des "vraies" technologies de client riche, soit de tout gérer côté serveur. C'est très insatisfaisant ce genre de réponse mais croyez moi, ce sont des années d'expérience de développement en environnement Web qui parlent :o)
Bon courage !
"@SM" a écrit dans le message de news:
La fenêtre pop-up peut envoyer un message à l'ouvrante .... page pop-up <body onunload="envoi();opener.alarm();" onload="recevoir();"> Je ne peux pas mettre sur un onUnload car la popup est rechargée à chaque
requete
J'avais compris (vaguement) la chose, c'était une oportunité
C'est justement ca qui m'ennuie.
donc pour résumer, ta fonction de surveillance (que je sais pas à quoi ça sert) serait :
function soumet(myform) { if(!main || main.closed) main = window.open('','ici','toolbar=0, location=0'+ ', directories=0,resizable=1, scrollbars=1, copyhistory=0'); // même pas besoin de myform.target='ici'; setTimeout('testOpen()',5000); return true; }
"@SM" <stephaneOTEZ-MOImoriaux@wanadoo.fr> a écrit dans le message de
news:4160027F.6D183987@wanadoo.fr...
La fenêtre pop-up peut envoyer un message à l'ouvrante
....
page pop-up
<body onunload="envoi();opener.alarm();" onload="recevoir();">
Je ne peux pas mettre sur un onUnload car la popup est rechargée à chaque
requete
J'avais compris (vaguement) la chose, c'était une oportunité
C'est justement ca qui m'ennuie.
donc pour résumer,
ta fonction de surveillance
(que je sais pas à quoi ça sert) serait :
function soumet(myform) {
if(!main || main.closed)
main = window.open('','ici','toolbar=0, location=0'+
', directories=0,resizable=1, scrollbars=1, copyhistory=0');
// même pas besoin de myform.target='ici';
setTimeout('testOpen()',5000);
return true;
}
La fenêtre pop-up peut envoyer un message à l'ouvrante .... page pop-up <body onunload="envoi();opener.alarm();" onload="recevoir();"> Je ne peux pas mettre sur un onUnload car la popup est rechargée à chaque
requete
J'avais compris (vaguement) la chose, c'était une oportunité
C'est justement ca qui m'ennuie.
donc pour résumer, ta fonction de surveillance (que je sais pas à quoi ça sert) serait :
function soumet(myform) { if(!main || main.closed) main = window.open('','ici','toolbar=0, location=0'+ ', directories=0,resizable=1, scrollbars=1, copyhistory=0'); // même pas besoin de myform.target='ici'; setTimeout('testOpen()',5000); return true; }
Bonjour, Je ne voulais pas me l'avouer mais je trouvais cette solution "batarde". Je vais essayer de me tourner vers une solution coté serveur. Qu'appelez vous "vraies" technologies ?? :o)
En tout cas merci de votre aide, ca m'a remis dans le "droit chemin" car je m'étais un peu égaré. Cordialement
HENRY Serge
Bonjour,
Je ne voulais pas me l'avouer mais je trouvais cette solution "batarde". Je
vais essayer de me tourner vers une solution coté serveur.
Qu'appelez vous "vraies" technologies ?? :o)
En tout cas merci de votre aide, ca m'a remis dans le "droit chemin" car je
m'étais un peu égaré.
Cordialement
Bonjour, Je ne voulais pas me l'avouer mais je trouvais cette solution "batarde". Je vais essayer de me tourner vers une solution coté serveur. Qu'appelez vous "vraies" technologies ?? :o)
En tout cas merci de votre aide, ca m'a remis dans le "droit chemin" car je m'étais un peu égaré. Cordialement
HENRY Serge
Henry Serge
bonjour, Merci de votre aide mais, comme le suggère Pierre Goiffon, je vais essayer de trouver une solution côté serveur. Merci de votre aide.
HENRY Serge
bonjour,
Merci de votre aide mais, comme le suggère Pierre Goiffon, je vais essayer
de trouver une solution côté serveur.
Merci de votre aide.
bonjour, Merci de votre aide mais, comme le suggère Pierre Goiffon, je vais essayer de trouver une solution côté serveur. Merci de votre aide.
HENRY Serge
Pierre Goiffon
"Henry Serge" a écrit dans le message de news:4163ae45$0$17765$
Je vais essayer de me tourner vers une solution coté serveur.
C'est un bon choix, et vous constaterez que vous n'êtes pas le seul développeur à l'avoir fait (après avoir essayé... et eu des prb ;o) )
Qu'appelez vous "vraies" technologies ?? :o)
Vous aurez bien remarqué les guillemets :) Je pensais par exemple à ActiveX, Java, XUL, Flex, ... Bref du traitement côté client un peu plus lourd et moins limitatif.
"Henry Serge" <henry.sergeANTISPAM@fenetre-sur.com> a écrit dans le
message de news:4163ae45$0$17765$8fcfb975@news.wanadoo.fr
Je vais essayer de me tourner vers une solution coté
serveur.
C'est un bon choix, et vous constaterez que vous n'êtes pas le seul
développeur à l'avoir fait (après avoir essayé... et eu des prb ;o) )
Qu'appelez vous "vraies" technologies ?? :o)
Vous aurez bien remarqué les guillemets :) Je pensais par exemple à ActiveX,
Java, XUL, Flex, ... Bref du traitement côté client un peu plus lourd et
moins limitatif.
"Henry Serge" a écrit dans le message de news:4163ae45$0$17765$
Je vais essayer de me tourner vers une solution coté serveur.
C'est un bon choix, et vous constaterez que vous n'êtes pas le seul développeur à l'avoir fait (après avoir essayé... et eu des prb ;o) )
Qu'appelez vous "vraies" technologies ?? :o)
Vous aurez bien remarqué les guillemets :) Je pensais par exemple à ActiveX, Java, XUL, Flex, ... Bref du traitement côté client un peu plus lourd et moins limitatif.