voici mon pb:
j'ai un frameset.
dans celui de gauche, je cree un objet window via la commande window.open
le pop up s'ouvre : ok
si le user ferme le popup, il déclenche un évènement onUnload que je
récupère en écrivant dans l'objet document de mon popup qque chose du
genre :
<body onUnload="parent.frameOuvrante.varglobale=null"> car je veux
remettre la référence à mon objet à null.
pb : je n'y parviens pas, alors que ma variable globale, qui est la
référence à mon objet fenetre, existe !
Prq je suis aussi compliqué ?
en fait j'ai une galerie photo. qd je clique sur une miniature, ca ouvre
un popup ou redimensionne le popup existant : ca évite la
multiplication des popups...
Actuellement, si le user ferme le popup, mon programme tente de
redimensionner celui qui existait avant -> boum .
merci d'avance pour votre aide si vous avez une idée
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ASM
bonsoir,
voici mon pb: j'ai un frameset. dans celui de gauche, je cree un objet window via la commande window.open
le pop up s'ouvre : ok si le user ferme le popup, il déclenche un évènement onUnload que je récupère en écrivant dans l'objet document de mon popup qque chose du genre :
<body onUnload="parent.frameOuvrante.varglobale=null"> car je veux remettre la référence à mon objet à null.
pb : je n'y parviens pas, alors que ma variable globale, qui est la référence à mon objet fenetre, existe !
elle existe dans la frame de l'opener (l'ouvrant) du pop-up et non pas dans la frame du parent (contenant) du pop-up
maintenant, il est probable qu'à la fermeture du pop-up, si tu avais fait :
varglobale = window.open(blabla);
cette varglobale passasse automatiquement à null ou à tout le moins à false ou même sinon simplement varglobale.closed dû eut passer à true Tout ceci sans aucune autre intervention que la fermeture du popup
Prq je suis aussi compliqué ?
Pas plus ... Ce que tu veux faire est un truc bateau et éculé.
en fait j'ai une galerie photo. qd je clique sur une miniature, ca ouvre un popup ou redimensionne le popup existant : ca évite la multiplication des popups... Actuellement, si le user ferme le popup, mon programme tente de redimensionner celui qui existait avant -> boum .
il suffit donc de savoir s'il est ouvert ce qui se fait comme suit :
<script type="text/javascript"> var trucúlse; function pop(larg,haut) { if(!(truc) || truc.closed) truc=window.open('','ici','width='+larg+',height='+haut+',resizable=0'); else truc.resizeTo(larg,haut); var Mg = (screen.width-larg-20)/2; var Mh = (screen.heiht-haut)/2-20; truc.moveTo(Mg,Mh); // re-centrage sur l'écran truc.focus(); // re-mise-devant (si popup passé derrière) } </script> <a href="photo_1.jpg" target="ici" onclick="pop(252,183);">Photo 1</a> <a href="photo_2.jpg" target="ici" onclick="pop(122,387);">Photo 2</a>
Tu auras remarqué que dans la fonction d'ouverture du pop-up je glissais comme nom de cible : 'ici' Le lien est direct sur la photo à montrer et est assorti d'un target="ici" Hors donc, si le JavaScript n'est pas activé, la photo va alors s'afficher dans une nvelle fenêtre standard (puisque la cible 'ici' est inconue) Mais si le JS est activé, Ho! Miracle ! une nouvelle fenêtre s'est ouverte et est pourvue de la bonne cible ! Hop! la photo s'y affiche.
Bien évidemment avant de faire ouvrir le pop-up la fonction d'ouverture s'interroge sur son existance ou sa fermeture.
Bien évidemment, tout ceci repose sur l'idée que le visiteur n'a pas un anti-popup mal fagoté
merci d'avance pour votre aide si vous avez une idée
voir tuto sur les popups http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/java/fenetr/ démo sur la question de l'opener et du popup ouvert http://perso.wanadoo.fr/stephane.moriaux/truc/popup_oui_non voir des idées de diaporamas : http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/pass_vue/ voir des idées d'affichages de photos à partir de vignettes ou non: http://perso.wanadoo.fr/stephane.moriaux/truc/pop_zoom.shtml http://perso.wanadoo.fr/stephane.moriaux/truc/pop_titre.htm http://perso.wanadoo.fr/stephane.moriaux/truc/pop_titre_coprght.shtml et ici un pop-up intelligent qui se redimentonne tout seul http://perso.wanadoo.fr/stephane.moriaux/truc/popup_image_auto_3_ie.shtml http://perso.wanadoo.fr/stephane.moriaux/truc/gn/img_centree_fl1.shtml
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
bonsoir,
voici mon pb:
j'ai un frameset.
dans celui de gauche, je cree un objet window via la commande window.open
le pop up s'ouvre : ok
si le user ferme le popup, il déclenche un évènement onUnload que je
récupère en écrivant dans l'objet document de mon popup qque chose du
genre :
<body onUnload="parent.frameOuvrante.varglobale=null"> car je veux
remettre la référence à mon objet à null.
pb : je n'y parviens pas, alors que ma variable globale, qui est la
référence à mon objet fenetre, existe !
elle existe dans la frame de l'opener (l'ouvrant) du pop-up
et non pas dans la frame du parent (contenant) du pop-up
maintenant, il est probable qu'à la fermeture du pop-up,
si tu avais fait :
varglobale = window.open(blabla);
cette varglobale passasse automatiquement à null
ou à tout le moins à false
ou même sinon simplement varglobale.closed dû eut passer à true
Tout ceci sans aucune autre intervention que la fermeture du popup
Prq je suis aussi compliqué ?
Pas plus ...
Ce que tu veux faire est un truc bateau et éculé.
en fait j'ai une galerie photo. qd je clique sur une miniature, ca ouvre
un popup ou redimensionne le popup existant : ca évite la
multiplication des popups...
Actuellement, si le user ferme le popup, mon programme tente de
redimensionner celui qui existait avant -> boum .
il suffit donc de savoir s'il est ouvert
ce qui se fait comme suit :
<script type="text/javascript">
var trucúlse;
function pop(larg,haut) {
if(!(truc) || truc.closed)
truc=window.open('','ici','width='+larg+',height='+haut+',resizable=0');
else
truc.resizeTo(larg,haut);
var Mg = (screen.width-larg-20)/2;
var Mh = (screen.heiht-haut)/2-20;
truc.moveTo(Mg,Mh); // re-centrage sur l'écran
truc.focus(); // re-mise-devant (si popup passé derrière)
}
</script>
<a href="photo_1.jpg" target="ici" onclick="pop(252,183);">Photo 1</a>
<a href="photo_2.jpg" target="ici" onclick="pop(122,387);">Photo 2</a>
Tu auras remarqué que dans la fonction d'ouverture du pop-up
je glissais comme nom de cible : 'ici'
Le lien est direct sur la photo à montrer et est assorti d'un target="ici"
Hors donc, si le JavaScript n'est pas activé, la photo va alors s'afficher
dans une nvelle fenêtre standard (puisque la cible 'ici' est inconue)
Mais si le JS est activé, Ho! Miracle ! une nouvelle fenêtre s'est ouverte
et est pourvue de la bonne cible ! Hop! la photo s'y affiche.
Bien évidemment avant de faire ouvrir le pop-up
la fonction d'ouverture s'interroge sur son existance ou sa fermeture.
Bien évidemment, tout ceci repose sur l'idée que le visiteur
n'a pas un anti-popup mal fagoté
merci d'avance pour votre aide si vous avez une idée
voir tuto sur les popups
http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/java/fenetr/
démo sur la question de l'opener et du popup ouvert
http://perso.wanadoo.fr/stephane.moriaux/truc/popup_oui_non
voir des idées de diaporamas :
http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/pass_vue/
voir des idées d'affichages de photos à partir de vignettes ou non:
http://perso.wanadoo.fr/stephane.moriaux/truc/pop_zoom.shtml
http://perso.wanadoo.fr/stephane.moriaux/truc/pop_titre.htm
http://perso.wanadoo.fr/stephane.moriaux/truc/pop_titre_coprght.shtml
et ici un pop-up intelligent qui se redimentonne tout seul
http://perso.wanadoo.fr/stephane.moriaux/truc/popup_image_auto_3_ie.shtml
http://perso.wanadoo.fr/stephane.moriaux/truc/gn/img_centree_fl1.shtml
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
voici mon pb: j'ai un frameset. dans celui de gauche, je cree un objet window via la commande window.open
le pop up s'ouvre : ok si le user ferme le popup, il déclenche un évènement onUnload que je récupère en écrivant dans l'objet document de mon popup qque chose du genre :
<body onUnload="parent.frameOuvrante.varglobale=null"> car je veux remettre la référence à mon objet à null.
pb : je n'y parviens pas, alors que ma variable globale, qui est la référence à mon objet fenetre, existe !
elle existe dans la frame de l'opener (l'ouvrant) du pop-up et non pas dans la frame du parent (contenant) du pop-up
maintenant, il est probable qu'à la fermeture du pop-up, si tu avais fait :
varglobale = window.open(blabla);
cette varglobale passasse automatiquement à null ou à tout le moins à false ou même sinon simplement varglobale.closed dû eut passer à true Tout ceci sans aucune autre intervention que la fermeture du popup
Prq je suis aussi compliqué ?
Pas plus ... Ce que tu veux faire est un truc bateau et éculé.
en fait j'ai une galerie photo. qd je clique sur une miniature, ca ouvre un popup ou redimensionne le popup existant : ca évite la multiplication des popups... Actuellement, si le user ferme le popup, mon programme tente de redimensionner celui qui existait avant -> boum .
il suffit donc de savoir s'il est ouvert ce qui se fait comme suit :
<script type="text/javascript"> var trucúlse; function pop(larg,haut) { if(!(truc) || truc.closed) truc=window.open('','ici','width='+larg+',height='+haut+',resizable=0'); else truc.resizeTo(larg,haut); var Mg = (screen.width-larg-20)/2; var Mh = (screen.heiht-haut)/2-20; truc.moveTo(Mg,Mh); // re-centrage sur l'écran truc.focus(); // re-mise-devant (si popup passé derrière) } </script> <a href="photo_1.jpg" target="ici" onclick="pop(252,183);">Photo 1</a> <a href="photo_2.jpg" target="ici" onclick="pop(122,387);">Photo 2</a>
Tu auras remarqué que dans la fonction d'ouverture du pop-up je glissais comme nom de cible : 'ici' Le lien est direct sur la photo à montrer et est assorti d'un target="ici" Hors donc, si le JavaScript n'est pas activé, la photo va alors s'afficher dans une nvelle fenêtre standard (puisque la cible 'ici' est inconue) Mais si le JS est activé, Ho! Miracle ! une nouvelle fenêtre s'est ouverte et est pourvue de la bonne cible ! Hop! la photo s'y affiche.
Bien évidemment avant de faire ouvrir le pop-up la fonction d'ouverture s'interroge sur son existance ou sa fermeture.
Bien évidemment, tout ceci repose sur l'idée que le visiteur n'a pas un anti-popup mal fagoté
merci d'avance pour votre aide si vous avez une idée
voir tuto sur les popups http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/java/fenetr/ démo sur la question de l'opener et du popup ouvert http://perso.wanadoo.fr/stephane.moriaux/truc/popup_oui_non voir des idées de diaporamas : http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/pass_vue/ voir des idées d'affichages de photos à partir de vignettes ou non: http://perso.wanadoo.fr/stephane.moriaux/truc/pop_zoom.shtml http://perso.wanadoo.fr/stephane.moriaux/truc/pop_titre.htm http://perso.wanadoo.fr/stephane.moriaux/truc/pop_titre_coprght.shtml et ici un pop-up intelligent qui se redimentonne tout seul http://perso.wanadoo.fr/stephane.moriaux/truc/popup_image_auto_3_ie.shtml http://perso.wanadoo.fr/stephane.moriaux/truc/gn/img_centree_fl1.shtml
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
justforusenet
La fenêtre qui a ouvert le popup est "opener" (pas "parent"). Et l'opener avec des frames, si ta fonction est dans le frameset (ce que je recommande), n'est pas toujours le même dans tous les navigateurs. Parfois c'est le frame (IE), parfois c'est le frameset (les autres). Place ta fonction pour ouvrir le popup et ta variable globale dans la frameset page et call là de ton frame avec top.mafonction()
Puis dans le popup, tu remets ta variable à null avec:
<script> window.onunload=reset; function reset() { opener.top.mavariable=null; } </script>
Voici une explication détaillée (en anglais) d'une situation similaire où j'y suis "cfec": http://forum.echoechoplus.com/showthread.php?s=&threadidt52
et un démo (regarde la source des documents et tout va devenir clair comme de l'eau de roche ;-) : http://www.christianfecteau.com/echo/popup_change_src_of_frames/
Et la plupart de mes code snippets si tu es curieux: http://www.christianfecteau.com/echo/
Christian P.S.: Désolé pour mon franglais :-)
La fenêtre qui a ouvert le popup est "opener" (pas "parent"). Et
l'opener avec des frames, si ta fonction est dans le frameset (ce que
je recommande), n'est pas toujours le même dans tous les navigateurs.
Parfois c'est le frame (IE), parfois c'est le frameset (les autres).
Place ta fonction pour ouvrir le popup et ta variable globale dans la
frameset page et call là de ton frame avec top.mafonction()
Puis dans le popup, tu remets ta variable à null avec:
<script>
window.onunload=reset;
function reset()
{
opener.top.mavariable=null;
}
</script>
Voici une explication détaillée (en anglais) d'une situation similaire
où j'y suis "cfec":
http://forum.echoechoplus.com/showthread.php?s=&threadidt52
et un démo (regarde la source des documents et tout va devenir clair
comme de l'eau de roche ;-) :
http://www.christianfecteau.com/echo/popup_change_src_of_frames/
Et la plupart de mes code snippets si tu es curieux:
http://www.christianfecteau.com/echo/
La fenêtre qui a ouvert le popup est "opener" (pas "parent"). Et l'opener avec des frames, si ta fonction est dans le frameset (ce que je recommande), n'est pas toujours le même dans tous les navigateurs. Parfois c'est le frame (IE), parfois c'est le frameset (les autres). Place ta fonction pour ouvrir le popup et ta variable globale dans la frameset page et call là de ton frame avec top.mafonction()
Puis dans le popup, tu remets ta variable à null avec:
<script> window.onunload=reset; function reset() { opener.top.mavariable=null; } </script>
Voici une explication détaillée (en anglais) d'une situation similaire où j'y suis "cfec": http://forum.echoechoplus.com/showthread.php?s=&threadidt52
et un démo (regarde la source des documents et tout va devenir clair comme de l'eau de roche ;-) : http://www.christianfecteau.com/echo/popup_change_src_of_frames/
Et la plupart de mes code snippets si tu es curieux: http://www.christianfecteau.com/echo/
Christian P.S.: Désolé pour mon franglais :-)
Gabriel
C'était tou bête, il me manquait juste la syntaxe du test : if(!(truc) || truc.closed)
merci bcp, ca fonctionne très bien mnt !
bonne soirée !
C'était tou bête, il me manquait juste la syntaxe du test :
if(!(truc) || truc.closed)